我想找到在同一个句子中所有颠倒单词的单词。 然而,我得到的密码只找到了这个词的第一次出现。 在我的句子“我要吃ma,tae也要吃”中,我应该得到am(ma是反向词)和eat(tae是反向词)的输出。我只得到am..我如何修改此代码以获得其中所有具有反转单词的单词,即am和eat
input_str='i am going to eat ma and tae will also go'
word=input_str.split()
def isReverseEqual(s1, s2):
# If both the strings differ in length
if len(s1) != len(s2):
return False
l = len(s1)
for i in range(l):
# In case of any character mismatch
if s1[i] != s2[l-i-1]:
return False
return True
def getWord(str, n):
reverse=[]
# Check every string
for i in range(n-1):
# Pair with every other string
# appearing after the current string
for j in range(i+1, n):
# If first string is equal to the
# reverse of the second string
if (isReverseEqual(str[i], str[j])):
reverse.append(str[i])
return reverse
# No such string exists
return "-1"
print(getWord(word, len(word)))
输出: ['am','eat']是人们所期望的
输出:
您可以使用:
输出:
这是O(n)时间复杂度的解决方案,因此您必须首先获取单词并对其进行迭代,每次您有一个新词时,您都要将其添加到一个集合中,如果集合中已经存在反向,则您要将反向添加到结果中
只需更改“return reverse”行的缩进:
相关问题 更多 >
编程相关推荐