如果一个数组在颠倒其元素的顺序后保持不变,则该数组被称为回文数组。
你有一个字符串数组 arr。对于每个 i,arr[i]至少包含两个字符。对于每对连续元素arr[i]和arr[i + 1],您可以:
arr[i]到 中最左边的位置arr[i + 1]。例如,“abc”和“def”将变为“ab”和“cdef”。此操作只能对任何一对连续元素应用一次。arr[i + 1]到 中最右边的位置arr[i]。例如,“abc”和“def”将变为“abcd”和“ef”。同样,此操作只能对任何一对连续元素应用一次。通过执行这些操作是否可以从 arr 中获取回文数组?
考虑 arr = 时的情况{"aa", "bab", "cde", "aba", "ab"}。这里的输出应该是 true,原因如下:
将第一个字符从第 1 个索引移动到第 0 个索引的最后位置, arr ={"aab", "ab", "cde", "aba", "ab"}
将最后一个字符从第 3 个索引移动到第 4 个索引的第一个位置,arr = {"aab", "ab", "cde", "ab", "aab"},这是一个回文数组。
我尝试了诸如两个指针等解决方案,但似乎不起作用。