小编akh*_*pta的帖子

通过执行这些操作获得回文数组

如果一个数组在颠倒其元素的顺序后保持不变,则该数组被称为回文数组。

你有一个字符串数组 arr。对于每个 i,arr[i]至少包含两个字符。对于每对连续元素arr[i]arr[i + 1],您可以:

  1. 将 中最右边的字符移动arr[i]到 中最左边的位置arr[i + 1]。例如,“abc”和“def”将变为“ab”和“cdef”。此操作只能对任何一对连续元素应用一次。
  2. 将 中最左边的字符移动arr[i + 1]到 中最右边的位置arr[i]。例如,“abc”和“def”将变为“abcd”和“ef”。同样,此操作只能对任何一对连续元素应用一次。
  3. 对这对连续元素不执行任何操作。

通过执行这些操作是否可以从 arr 中获取回文数组?

考虑 arr = 时的情况{"aa", "bab", "cde", "aba", "ab"}。这里的输出应该是 true,原因如下:

将第一个字符从第 1 个索引移动到第 0 个索引的最后位置, arr ={"aab", "ab", "cde", "aba", "ab"} 将最后一个字符从第 3 个索引移动到第 4 个索引的第一个位置,arr = {"aab", "ab", "cde", "ab", "aab"},这是一个回文数组。

我尝试了诸如两个指针等解决方案,但似乎不起作用。

arrays string algorithm data-structures

6
推荐指数
1
解决办法
2706
查看次数

标签 统计

algorithm ×1

arrays ×1

data-structures ×1

string ×1