Given an array of equal-length strings, check if it is possible to rearrange the strings in such a way that after the rearrangement the strings at consecutive positions would differ by exactly one character.
Example
-
For
inputArray = ["aba", "bbb", "bab"]
, the output should bestringsRearrangement(inputArray) = false
.All rearrangements don't satisfy the description condition.
-
For
inputArray = ["ab", "bb", "aa"]
, the output should bestringsRearrangement(inputArray) = true
.Strings can be rearranged in the following way:
"aa", "ab", "bb"
.
不会做....
import itertools def stringsRearrangement(inputArray): def f(x, y): c = 0 for i in range(len(x)): if x[i] != y[i]: c += 1 if c == 1: return True return False for k in itertools.permutations(inputArray, len(inputArray)): r = True for i in range(len(k) - 1): if not f(k[i], k[i + 1]): r = False if r: return True return False