【Leetcode刷题Python】生词本单词整理
1 题目
小A最近在努力学习英语。小A有一本生词本,专门用来记录见到的生词。每次小A看到一个自己不认识的单词时,就会把这个生词抄写到生词本上。经过几个月的学习之后,小A想对这个生词本上的单词进行整理。由于小A并不能保证生词抄写一遍后就记下来,因此小A可能会把一个已经记录在生词本上的单词当做不认识的往上写(即一个单词可能在生词本上出现多次)。小A希望把生词本上的单词去重,并且按字典序进行排序,然后排好版打印出来。打印排版的要求是:单词去重后按字典序从小到大的顺序排,相邻的两个单词用一个空格隔开,尽量写在同一行,且每一行至多只能有50个字符(包含空格)。单词在不能隔行写,即如果写下某个单词会超出一行的字符数限制,那么必须将这个单词整个写到下一行的开头。现在将小A若干天以来的记录的生词给你,请你帮他按照要求进行整理和排版。字典序:对两个字符串从左到右进行逐字符比较,比较过程中,一旦发现某一对被比较的字符之间不相等时,这一对字符的大小关系即为这一对字符串的大小关系。比较过程中,一旦出现某一个字符串的所有字符都已经经过比较,而另一字符串还存在未被比较的字符时,较短的字符串更小。所有字符串内的字符都被发现相等,则这两个字符串相等。例如:”abc”<”ba”, “bbc”>”abc”, “ab”<”abc”。
示例1:
样例输入
2
abandon huhuhuh muhah lalala english language study learn
abandon learn
样例输出
abandon english huhuhuh lalala language learn
muhah study
示例2:
输入样例
1
abandon huhuhuh muha lalala english language study learn
输出样例
abandon english huhuhuh lalala language learn muha
study
2 Python实现
m = int(input())
words = []
while 1:
s = input()
if s != "":
words.extend(s.split())
else:
break
words2 = list(set(words))
words2.sort()
n = 0
for w in words2:
l = n+len(w)
if l <=50:
print (w,end=' ' )
n += len(w)+1
else:
print('\n{}'.format(w),end=' ')
n = 0
这个代码通过了仅为9%,不知道哪里出了问题,希望大家指正
相关文章
- pycharm配置python运行环境_C中调用Python
- python字符串转化列表_Python列表到字符串的转换[通俗易懂]
- python字符串编码及乱码解决方案
- python hashlib_Python hashlib模块实例使用详解
- unboundlocalerror python_Python问题:UnboundLocalError: local variable ‘xxx’ referenced before assignme
- python chmod_使Python脚本可执行chmod755?
- python语言一般用于什么_PYthon
- 【说站】python有哪些求解线性规划的包
- 【说站】Python中__slots__限制属性
- lambda python表达式_Python的条件表达式和lambda表达式实例
- python上的表白代码_用Python实现表白代码
- Python文件名后缀_python获取目录下所有文件的文件名
- 软件测试|教你用Python给领导发邮件
- Python内置(2)异常、常量、globals
- opencv(4.5.3)-python(十五)--图像梯度
- Python: PyQt5在Pycharm中的配置
- 【测试开发】python系列教程:Python数据类型转换
- Python readline()和readlines()函数:按行读取文件
- 快速安装Python MySQL模块(python安装mysql模块)
- 为你的 Python 平台类游戏添加跳跃功能
- 如何在Linux中安装Python?(linux安装python)
- 利用Neo4j和Python进行无缝图形数据库支持(neo4j python)
- Linux下的Python开发技术之旅(linux下python开发)
- python编程-将Python程序转化为可执行程序[整理]