Python编程题38--最长单词

技术Python编程题38--最长单词 Python编程题38--最长单词题目
给定一组单词words,请找出其中的最长单词,该最长单词是由words中其他单词逐步添加一个字母组成。若有多个长度相同的结

Python编程问题38-最长的单词

题目

给定一组单词,请找出最长的单词。最长的单词是由单词中的其他单词逐渐加上一个字母组成的。如果有多个长度相同的结果,将返回字典顺序最小的结果;如果没有符合要求的结果,将返回一个空字符串。

例如:

给出一个词:['a ','香蕉',' app ',' appl ',' AP ',' apply ',' apple']

结果:“苹果”

说明:“apply”和“apple”由单词组成,但“apple”的字典顺序小于“apply”

给出一个词:['w ',' ow ',' wor ',' b ',' owb']

返回:“b”

说明:这里,符合要求的词中没有最长的词,所以单个字母就是最终结果,但是‘w’的字典顺序小于‘b’

说明:

单词中的所有单词只包含小写字母。

word中的所有单词都长于0,并且至少有一个单词或字母的长度只有1。

最长的单词必须以字母开头,并在单词末尾逐渐添加一个字母。

实现思路1

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

遍历单词得到所有单词单词,并设置一个标志,默认值为True,判断单词是否可以完全由其他单词组成。

每次都需要判断当前遍历的单词单词。如果单词不能完全由其他单词组成,那么处理标志=False,结束当前单词的遍历。

每次判断当前遍历的单词word后,如果flag=True,则表示该单词可以完全由其他单词组成。同时需要判断当前单词的长度是否大于等于max_length。如果是这样的话,有必要更新max_length并将当前单词添加到res_list。

因为res_list中可能有几个最长的单词,所以需要比较它们,并对它们进行排序(默认情况下,字符串排序是按ASCII大小进行比较的),然后您可以找到字典顺序最小的项目。

代码实现1

def longestWord(字数):

res_list=[]

最大长度=0

单词集=集合(单词)

逐字逐句

Flag=True #用于标记单词是否可以完全由其他单词组成。

对于范围内的I(len(word)):

tmp=word[:i 1]

如果tmp不在word _ set : # set中,请查找时间复杂度O(1)。如果tmp不在words _ set中,直接结束当前单词的遍历。

标志=假

破裂

#如果当前单词遍历后flag=True,则表示当前单词可以完全由单词中的其他单词组成。

if标志和最大长度=len(字):

max _ len=len(字)

res_list.append(word)

#可能有几个最长的单词。首先找到所有最长的单词,然后对它们进行排序(默认情况下,字符串排序按ASCII大小进行比较)。排序后的第一个元素是字典顺序最小的单词。

res_list=[如果len(i)==max_length,则I代表RES _ list中的I]

res_list.sort()

如果res_list为else,则返回res_list[0]

实现思路2

首先,对单词进行多次排序,首先按字典顺序,其次按单词长度。排序后,词序按字长递减,再按字典顺序递减。

遍历单词得到所有单词单词,并设置一个标志,默认值为True,判断单词是否可以完全由其他单词组成。

每次都需要判断当前遍历的单词单词。如果单词不能完全由其他单词组成,那么处理标志=False,结束当前单词的遍历。

每次判断当前遍历的单词word后,如果flag=True,则表示该单词可以完全由其他单词组成,此时的单词是查找最长的单词。

代码实现2

def longestWord(字数):

Words.sort() #排序几次,第一次找到最小的字典顺序,第二次找到最长的(reverse=True,降序)。

单词.排序(关键字=len,反向=True)

单词集=集合(单词)

逐字逐句

标志=真

对于范围内的I(len(word)):

tmp=word[:i 1]

如果tmp不在words _ set: # setFind时间复杂度O(1),如果tmp不在words _ set,直接结束循环。

标志=假

破裂

if标志:

返回字

返回“”

更多Python编程题,等你来挑战:python编程问题摘要(持续更新.)

作者:wintest

来源:https://www.cnblogs.com/wintest

本文版权归作者和博客公园所有。欢迎转载,但必须在文章页面显著位置给出原文链接,此声明保留,否则保留追究法律责任的权利。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153033.html

(0)

相关推荐

  • mysql中Too many connections问题怎么处理

    技术mysql中Too many connections问题怎么处理这篇文章将为大家详细讲解有关mysql中Too many connections问题怎么处理,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这

    攻略 2021年11月6日
  • Sentinel动态数据源架构设计理念与改造实践是怎么样的

    技术Sentinel动态数据源架构设计理念与改造实践是怎么样的今天就跟大家聊聊有关Sentinel动态数据源架构设计理念与改造实践是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根

    攻略 2021年10月21日
  • 润肺的食物,清肺化痰,吃哪些食物比较好

    技术润肺的食物,清肺化痰,吃哪些食物比较好感谢邀请润肺的食物!!
    我们众所周知,肺在人体的器官当中,可以说是非常重要的。
    肺,它的主要作用是呼吸,因为肺是气体交换的场所,所以通过肺的呼吸作用,才能够不断的吸进新鲜空气过滤

    生活 2021年10月26日
  • 幂的乘方50道计算题,初一解方程计算题有过程答案

    技术幂的乘方50道计算题,初一解方程计算题有过程答案1。某中学修整草场,如果让初一学生单独工作,需要7。5小时完成;如果让初二学生单独做,需要5小时完成。如果让初一幂的乘方50道计算题、初二学生一起工作1小时,再由初二学

    生活 2021年10月22日
  • 抖音刷粉后果,抖音刷粉丝专业讲解?

    技术抖音刷粉后果,抖音刷粉丝专业讲解?抖音怎么刷粉丝?想要抖音刷粉的小伙伴都会有个疑惑,那就是抖音刷粉后果会严重不?因为抖音公告上有说不允许通过刷粉的方式增加粉丝的,所以大家就比较担心这个抖音刷粉刷赞被发现后果严重不严重

    测评 2021年10月19日
  • androidmonkey测试工具的完善思路(androidmonkey教程)

    技术Android中的monkey实战是怎样的这篇文章将为大家详细讲解有关Android中的monkey实战是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。环境介绍

    攻略 2021年12月24日