【发布时间】:2019-09-06 18:47:03
【问题描述】:
我有一个包含名字的文本文件,但每年都会添加新名字。
我需要一个 Python 程序,它从文本文件中获取部分名称,并找到这些名称的子字符串的某种组合,这些子字符串可以连接起来创建一个匹配用户输入的字符串。
程序应使用文本文件中尽可能少的可用名称来执行此操作。
例如,如果文本文件包含以下内容:
Joppe
Fien
Katrijn
Sven
Kobe
程序要求输入一个不在文本文件中的名称。例如:
Please fill in a name: Katrien
然后它应该打印这个:
Katri => Katrijn
ien => Fien
不像这样——它正确地构建了名称,但有一个更好的解决方案,使用更少的单词:
K => Kobe
a => Katrijn
tr => Katrijn
ien => Fien
如果文本文件包含:
Joppe
Fien
Makatrijn
Sven
Kobe
它也可以打印这个:
Katr => Makatrijn
ien => Fien
我试过了,但没有结果:
name_input = input('Fill in a name: ')
with open('namen.txt', 'r') as file:
for name in file.readlines():
for letter_name_input in name_input:
for letter in name:
if letter == letter_name_input:
print(letter)
【问题讨论】:
-
如果您有任何问题。我很乐意回答。
-
感谢 @ggorlen 让外观更好,我是 stackoverflow 的新手。
-
最好的匹配是使用尽可能少的名字来命名给定的名字。
-
哦,我想我明白了。您输入一个词,程序会检查文本文件中的可用词,以尝试使用尽可能少的可用词来构建目标词。有道理。
-
@ggorlen man...我可以隐约理解这个问题,但我做梦也想不到像你刚才所做的那样措辞......
标签: python-3.x algorithm search