"""
设计:Python程序设计
作者:初学者
日期:2022年 04月 04日
"""
# 例81 词典中最长的单词
# 1.问题描述
# 给出一系列字符串单词,表示一个英语词典,找到字典中最长的单词,这些单词可以
# 通过字典中其他单词每次增加一个字母构成。如果有多个可能的答案,则返回字典顺序整最小的
# 那个。如果没有答案,则返回空字符串。
# 2.问题示例
# 输入words=["w","wo","wor","worl","world"],输出"world",单词"world"可以
# 通过"w","wo","wor","worl"每次增加一个字母构成。
# 输入words=["a","banana","app","appl","ap","apply","apple"],输出"apple"
# 单词"apply"和"apple"都能够通过字典里的其他单词构成。但是,"apple"的字典序比"apply"小。
# 输入中的所有字符串只包含小写字母,words的长度范围[1,1000],words[i]长度范围为[1,30]
# 3.代码实现
#
class Solution:
"""
参数words:字符串列表
返回最小的单词,没有则返回空
"""
def string_word(self, words):
words.sort()
words.sort(key=len, reverse=True)
for word in words:
temp = word
for i in range(len(temp)):
if temp[:len(temp) - i] in words:
if i == len(temp) - 1:
return temp
continue
else:
break
return '空'
# 主函数
if __name__ == '__main__':
s = Solution()
words = ["w", "wo", "wor", "worl", "world"]
words1 = ["a", "banana", "app", "appl", "ap", "apply", "apple"]
words2 = ["f1", "k2", "q3", "dd4"]
print("输入字典:", words)
print("输出:", s.string_word(words))
print("输出:", s.string_word(words1))
print("输出:", s.string_word(words2))
字典中最长的单词
最新推荐文章于 2023-04-03 09:30:00 发布