targets = [
“ARE”, “PENPIEAPPLE”, “APPLEPEN”, “APPLE”, “LIPS”, “RED”, “AIR”, “PLEASE”
]
def cangenerate(str):
result = detect_word(str)
if result:
print("可以生成%s" % str)
else:
print("不可以生成%s" % str)
def position(str, letters):
for word in letters:
i = letters.index(word)
for w in word:
if w == str:
j = word.index(str)
return i, j
def site_position(i, j, next_word, letters):
leter = []
for s in [-1, 0, 1]:
for d in [-1, 0, 1]:
try:
if i + s < 0 or j + d < 0:
continue
if i + s == i and j + d == j:
continue
let = letters[i + s][j + d]
except Exception as e:
pass
else:
leter.append(let)
if next_word in leter:
del letters[i][j]
return True
else:
return False
def detect_word(str):
letters = [[‘A’, ‘R’, ‘E’], [‘I’, ‘P’, ‘D’], [‘E’, ‘L’, ‘P’]]
for w in str:
i, j = position(w, letters)
if str.index(w) + 1 < len(str):
k = str.index(w) + 1
next_word = str[k]
if site_position(i, j, next_word, letters):
continue
else:
return False
else:
return True
if name == “main”:
for letter in targets:
cangenerate(letter)