计算非子串重叠

时间:2019-06-01 01:12:49

标签: python python-3.x

编写程序允许用户输入字符串。结束程序打印输出:

a。重复了多少个单词。 例如:“这是杰克,杰克今年24岁” 控制台必须打印出“ 4”,因为“ is”和“ Jake”是重复出现的字词

b。删除所有重复的单词。打印其余内容:“今年24岁”

c。打印出已删除的重复单词

因此,想法是用户可以键入所需的任何内容,“这是杰克(Jake),杰克(Jake)已24岁””只是一个示例。最难的部分是控制台如何在没有子字符串的情况下检查所有重复的单词?

1 个答案:

答案 0 :(得分:0)

这有效吗? 这是我在做什么。

首先,我抓取用户输入,然后将字符串转换为一个列表,将单词之间的空格分开。然后,我计算单词的出现次数,如果wordcount大于1,则将其添加到字典中,其中的键是单词,值是字符串中存在的单词的数量。 在打印出重复的单词后,我删除了在词典中找到要提及的字符串。

注意-该代码可以进行很多改进,但我故意这样做,以使其易于理解。如果此代码是生产系统,则不应使用此代码。

string = input("Enter your string : ")

items = {}
words = string.split(" ")

for word in words:
    wordCount = words.count(word)
    if(wordCount > 1): 
        items[word] = wordCount

print("There are {0} repeated words".format(len(items)))

updateString = ""
for item in items:
    updateString =string.replace(item,"")

print(updateString)
print(items)

已更新

string = input("Enter your string : ")

items = {}
words = string.split(" ")

for word in words:
    wordCount = words.count(word)
    if(wordCount > 1): 
        items[word] = wordCount

print("There are {0} repeated words".format(len(items)))


for item in items:
    string = string.replace(" {0} ".format(item)," ")

print(string)
print(items)