【Leetcode刷题Python】生词本单词整理

简介: 文章提供了一个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%,不知道哪里出了问题,希望大家指正

目录
相关文章
|
1月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
63 2
|
26天前
|
算法
LeetCode第58题最后一个单词的长度
LeetCode第58题"最后一个单词的长度"的解题方法,通过从字符串末尾向前遍历并计数非空格字符,直接得出最后一个单词的长度。
LeetCode第58题最后一个单词的长度
|
1月前
|
Python
【Leetcode刷题Python】50. Pow(x, n)
本文介绍了LeetCode第50题"Pow(x, n)"的解法,题目要求实现计算x的n次幂的函数,文章提供了递归分治法的详细解析和Python实现代码。
14 1
|
14天前
|
运维 算法 数据挖掘
5个适合新手练习的Python刷题网站
5个适合新手练习的Python刷题网站
|
1月前
|
Python
【Leetcode刷题Python】1467. 两个盒子中球的颜色数相同的概率
本文介绍了LeetCode第50题"Pow(x, n)"的解法,题目要求实现计算x的n次幂的函数,文章提供了递归分治法的详细解析和Python实现代码。
16 0
|
1天前
|
存储 数据采集 人工智能
探索Python编程之美——从基础到进阶
【9月更文挑战第9天】本文是一篇深入浅出的技术分享文章,旨在引导读者从零基础开始掌握Python编程。我们将通过生动的实例和代码示例,探讨Python的基本语法、数据结构、函数、模块以及面向对象编程等核心概念。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python编程之旅吧!
16 11
|
2天前
|
Python
探索Python编程的奥秘:打造你的第一个程序
【9月更文挑战第8天】本文将带你进入Python编程的世界,通过一个有趣的项目——制作一个简单的猜数字游戏,让你快速入门。我们不仅会分享代码编写的步骤,还会讲解每一行代码的含义和作用,确保即使是编程新手也能跟上节奏。文章末尾附有完整代码,方便读者实践和学习。
18 12
|
3天前
|
API Python
探索Python中的多线程编程
探索Python中的多线程编程
15 5
|
6天前
|
存储 开发者 Python
探索Python编程之美
【9月更文挑战第5天】在这篇文章中,我们将一起踏上一场Python编程的奇妙之旅。从基础语法到高级特性,我们将一步步揭开Python语言的神秘面纱。你将学习如何编写清晰、高效的代码,掌握函数、类和模块的使用,以及理解面向对象编程的核心概念。此外,我们还将探讨异常处理、文件操作等实用技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技巧,让你在编程的道路上更加从容自信。
|
3天前
|
Python
揭秘!Python系统编程里那些让代码自由穿梭的神奇代码行
【9月更文挑战第9天】在Python的世界里,一些简洁的代码行却蕴含着强大的功能,如列表推导式让列表生成仅需一行代码:`squares = [x**2 for x in range(10)]`。`with`语句则能自动管理文件和网络连接的关闭,如`with open(&#39;example.txt&#39;, &#39;r&#39;) as file:`。`lambda`函数和装饰器则允许快速定义函数和增强功能,而上下文管理器更是资源处理的利器。这些特性让Python代码更加优雅高效。
11 4