cswork / OA打开练习工作台

PayPayOA #4

Palindromic Array Transformation

估计困难评测数据准备中,可先阅读题面

考点(AI 标注)状态机字符串

SDE I An array is called palindromic if it remains the same after reversing the order of its elements. You have an array of strings arr. For each i, arr[i] consists of at least two characters. For each pair of consecutive elements arr[i] and arr[i + 1], you can: Move the rightmost character of arr[i] to the leftmost position in arr[i + 1]. For instance, "abc" and "def" will become "ab" and "cdef". This operation can be applied only once to any pair of consecutive elements. Move the leftmost character of arr[i + 1] to the rightmost position in arr[i]. For instance, "abc" and "def" will become "abcd" and "ef". Again, this operation can be applied only once to any pair of consecutive elements. Do nothing to the pair of consecutive elements. Is it possible to obtain a palindromic array from arr by performing these operations? return 1 --> True return 0 --> False Return 1 if the given array can be turned into a palindromic array, otherwise return 0.

Constraints

  • 1 ≤ arr.length ≤ 10⁵
  • 2 ≤ arr[i].length ≤ 10

Example 1

Input:

arr = ["aa", "bab", "cde", "aba", "ab"]

Output:

1

Explanation: Apply the second operation to "aa" and "bab". Apply the first operation to "aba" and "ab". This gives us the following array: ["aab", "ab", "cde", "ab", "aab"], which is palindromic.

Example 2

Input:

arr = ["palindrome"]

Output:

1

Explanation: The given array is already palindromic, so no operations are needed.

Example 3

Input:

arr = ["aaaaaa", "aa"]

Output:

0

Explanation: If moving two characters between two consecutive array elements was allowed, the array could have been made palindromic, but this is impossible given the actual rules.