我想获得找出所有在同一个句子已经扭转话里话。如何过,代码我只找到这个词的首次出现。在我的一句“我要去吃饭MA和TAE也将走”,我应该得到时许输出(MA反转字),吃(TAE是反转的话)。我am..how可以修改这个代码来获取所有已扭转的话在它即两个上午,吃的话我只得到。
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', '吃']是我们所期望的。
您可以使用:
words = input_str.split()
s = set()
result = set()
for w in words:
r = w[::-1]
if r in s:
result.add(r)
else:
s.add(w)
list(result)
输出:
['am', 'eat']
这是O(n)的时间复杂度的解决方案,所以你必须先打通他们的话和迭代,每次你要添加他到一组新词,如果反向已经在您添加的设定相反的结果
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句