轨道
/
Elixir
Elixir
/
练习
/
子数组
子数组

子数组

简单

说明

给定任意两个数组A和B,判断以下哪种情况成立:

  • 数组A与数组B相等;或
  • 数组A包含数组B(A是B的超数组);或
  • 数组A被数组B包含(A是B的子数组);或
  • 以上都不成立,因此数组A和B不相等

具体来说,如果两个数组的值相同且顺序一致,那么数组A与数组B相等。 如果数组A包含一段与B相等的连续子序列,那么A是B的超数组。 如果数组B包含一段与A相等的连续子序列,那么A是B的子数组。

例如:

  • 如果A = []且B = [](两个数组都为空),那么A和B相等
  • 如果A = [1, 2, 3]且B = [],那么A是B的超数组
  • 如果A = []且B = [1, 2, 3],那么A是B的子数组
  • 如果A = [1, 2, 3]且B = [1, 2, 3, 4, 5],那么A是B的子数组
  • 如果A = [3, 4, 5]且B = [1, 2, 3, 4, 5],那么A是B的子数组
  • 如果A = [3, 4]且B = [1, 2, 3, 4, 5],那么A是B的子数组
  • 如果A = [1, 2, 3]且B = [1, 2, 3],那么A和B相等
  • 如果A = [1, 2, 3, 4, 5]且B = [2, 3, 4],那么A是B的超数组
  • 如果A = [1, 2, 4]且B = [1, 2, 3, 4, 5],那么A和B不相等
  • 如果A = [1, 2, 3]且B = [1, 3, 2],那么A和B不相等

运行缓慢的测试

本练习的一个或多个测试被标记为:slow,因为它们可能需要很长时间才能完成。因此,平台上的自动化测试运行器不会运行这些测试。如果你直接在平台的网页编辑器中解这道练习,不妨考虑把这门练习下载到自己的电脑上,这样你就能运行所有测试,并检查解答的效率。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Elixir Exercism

准备好开始 子数组 了吗?

注册 Exercism,借助 58 个概念168 个练习 和真人导师指导,学习并掌握 Elixir,全部免费。