你迄今試過的一些例子可能有所幫助,這不是家庭作業交換。
事實上,你可能要去有這個問題的手段傳給人,但由於它有點代碼高爾夫球這裏是它的快速黑客從我(未經測試)
def alternade(text, setAllWords):
""" returns a tuple containing the two words that form the alternade
or None if the word is not an alternade
"""
listA = [];
listB = [];
textLength = len(text);
# prevent selecting character out of range by ensuring string is even
if textLength % 2:
textLength += 1
text = text + " "
for i in range(0, len(text), 2):
listA.append(text[i])
listB.append(text[i+1])
strA = ''.join(listA).strip()
strB = ''.join(listB).strip()
if strA in setAllWords and strB in setAllWords:
return (strA, strB)
return None
# To do populate this set with ALL words in source word list:
setAllWords = set([ "ass", "bad", "or", "wit", "dog", "etc..." ])
print alternade("board", setAllWords)
print alternade("waists", setAllWords)
當然
,你會需要一組所有的單詞,而不僅僅是我在這裏展示的幾個單詞,並且要找到工作交叉表達式,您需要遍歷所有調用alternade()的單詞並忽略那些返回空列表的單詞。
alternade(...)也可以更改爲返回一個布爾值,而不是組成該字母的構成詞。
(我敢肯定有Python的大師那裏誰可以在一個更Python的方式重寫,但我還沒有真正使用Python的專業,現在幾年)
你忘了提問了。 –