如何根据一段单词,找出其中的最长单词

本文介绍了如何在Python中从给定的单词列表中找出最长的单词,该单词可以通过逐步添加一个字母从列表中的其他单词形成。举例来说,给定['a', 'banana', 'app', 'appl', 'ap', 'apply', 'apple'],最长单词是'apple'。文章提供了两种不同的实现思路,通过遍历和排序来解决这个问题。" 123673957,12689065,Unity C#:查找血量最低的敌人及解决命名冲突,"['Unity开发', 'C#编程', '游戏开发', '脚本编写', '问题解决']
摘要由CSDN通过智能技术生成

嗨嗨, 我是小圆。
今天给大家分享一个练习题 :在python中,如何根据一段单词,找出其中的最长单词
请添加图片描述

题目

给定一组单词words,请找出其中的最长单词,该最长单词是由words中其他单词逐步添加一个字母组成。若有多个长度相同的结果,返回其中字典序最小的一项,若没有符合要求的结果,则返回空字符串。

例如:

给定一个words:[“a”, “banana”, “app”, “appl”, “ap”, “apply”, “apple”]
返回结果:“apple”

解释:“apply"和"apple"都是由words中的单词组成,但"apple"的字典序小于"apply”

给定一个words:[“w”,“ow”,“wor”,“b”, “owb”]
返回结果:“b”

解释:这里words中没有符合条件逐步组成的最长单词,所以单个字母就是最终结果,但"w"的字典序小于"b"

说明:

  • words中所有单词都只包含小写字母。
  • words中所有单词长度均大于0,且至少存在1个长度仅为1的单词或字母。
  • 最长单词必须是从一个字母开始,在其单词尾部逐步添加一个字母而得到的结果。

实现思路1

定义 max_length 表示最长单词的长度,其默认值为0;定义一个列表 res_list,用于存储长度等于 max_length 的所有单词

遍历 words ,得到所有单词 word ,并设置一个标记flag,默认值为True,用于判断 word 是否是能够完全由其他单词组成

每次需对当前遍历的单词word进行判断,如果word并不能完全由其他单词组成,那么处理 flag = False,同时结束对当前word的遍历

每次对当前遍历的单词word进行判断后,如果 flag = True,那么说明 word 是能够完全由其他单词组成,同时需判断当前word的长度是否大于等于 max_length ,如果是那么需要更新 max_length ,并把当前word添加到 res_list

因为 res_list 中可能存在多个最长的单词,所以需对其进行比较,可对其进行 sort排序 (字符串排序默认按ASCII的大小比较),排序后即可找到其字典序最小的一项

代码实现1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值