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
膜拜大佬