我们可以先将两个字符串分别按空格分割成单词的数组,然后遍历两个数组,一一比较。当出现不同的单词时,我们需要判断该单词是否是“编辑”单词,如果不是,则记录该单词在原字符串中的位置,并将该单词加入到结果数组中。
以下是示例代码:
def find_added_words_indexes(str1, str2):
s1_words = str1.split()
s2_words = str2.split()
result = []
index = 0
for word2 in s2_words:
if index >= len(s1_words):
result.append(len(s1_words))
index += 1
continue
word1 = s1_words[index]
if word1 != word2:
if word1 != "edited":
result.append(index)
else:
while index < len(s1_words) and s1_words[index] == "edited":
index += 1
if index < len(s2_words) and s2_words[index] == word1:
index += 1
else:
index += 1
return result
示例用法:
str1 = "The quick brown fox jumps over the lazy dog"
str2 = "The quick red fox jumps over the brown dog"
result = find_added_words_indexes(str1, str2)
print(result) # [2, 4, 8, 10, 11]
解释:在str2中,索引2对应的是单词"red",与str1中的单词不同,因此将其加入结果数组;索引4对应的是单词"jumps",与str1中的单词不同,但是是一个"edited"单词,因此跳过;索引8对应的是单词"brown",与str1中的单词不同,加入结果数组;索引
上一篇:比较两个字符串[单词]