python快速入门【六】----真题测试
python入门合集:
python快速入门【三】-----For 循环、While 循环
python快速入门【六】----真题测试
将字符串转化成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。
In [ ]
def toLowerCase(str: str)
#Put you anwser here
return str
反转字符串中的单词
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take deep learning contest"
输出: "s'teL ekat peed gninrael tsetnoc"
In [ ]
def reverseWords(s: str)
#Put you anwser here
return str
排列组合
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
In [ ]
def Permutation():
list = []
#Code goes here
return list
阶乘
让函数FirstFactorial(num)接受传递的num参数并返回它的阶乘。例如:如果num = 4,则程序应返回(4 * 3 * 2 * 1)= 24.对于测试用例,范围将介于1和18之间,输入将始终为整数
In [ ]
def FirstFactorial(num):
return num
# keep this function call here
print FirstFactorial(raw_input())
整型转罗马数字
罗马数字 3 写做 III ,即为3个并列的 1。12 写做 XII ,即为 X + II 。 26 写做 XXVI, 即为 XX + V + I 。 也有一些特例, 例如4, 可以放到V的左边, IV表示4.
In [ ]
def intToRoman( num: int):
roman = ""
# code goes here
return roman
盛水最多的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例:
输入: [1,8,6,2,5,4,8,3,7]
输出: 49
In [ ]
def maxArea(height: List[int]):
area = 0
# code goes here
return area
矩阵置零
给定一个 m * n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:
输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
输出:
[
[0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
进阶:
- 一个直接的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
- 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
- 你能想出一个常数空间的解决方案吗?
In [ ]
def setZeroes( matrix: List[List[int]]):
# Do not return anything, modify matrix in-place instead.
# Code goes here
文件操作
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中
In [ ]
def combination(file1, file2):
#Code goes here
return file3
更高难度练习:
一、猜数字
经典的猜数字游戏,几乎所有人学编程时都会做。
功能描述:随机选择一个三位以内的数字作为答案。用户输入一个数字,程序会提示大了或是小了,直到用户猜中。
二、FizzBuzz
另一道经典编程题。
功能描述:遍历并打印0到100,如果数字能被3整除,显示Fizz;如果数字能被5整除,显示Buzz;如果能同时被3和5整除,就显示FizzBuzz。结果应该类似:0,1,2,Fizz,4,Buzz,6……14,FizzBuzz,16……
三、猜数字的AI
和猜数字一样,不过这次是设计一个能猜数字的AI
功能描述:用户输入一个单位以内的数字,AI要用最少的次数猜中,并且显示出猜的次数和数字。
四、整点报时
老式挂钟会在整点的报时,响铃的次数和时间相等。我们设计一个在电脑上运行的报时器。
功能描述:运行后,在每一个整点长响一声,半个整点短响两声。实现睡眠模式,晚上十二点到早上六点不响铃。
五、敏感词审查
一向痛恨网络审查的你成了某网站的审查员,要求审查网络上违反上头规定的名词。
功能描述:要审查的帖子在这个文本文档里,要求将所有的和谐,三个代表,言论自由,64替换为*号。
六、文字冒险游戏
你想做个清新脱俗的文字游戏,只在命令行的黑框里运行。
功能描述:尽量参考回合制RPG游戏的模式,游戏剧情自编,要有战斗模式,主角有HP属性,战斗和吃东西会对HP有相应的增减效果。
七、词频统计
你想分析某个英语写作者的写作风格,你想先从他使用词语的频率入手。
功能描述:分析这个文本文档里的词频,按照出现频率由高到低排列结果,不区分大小写,过滤掉标点(可以使用正则表达式)。结果类似ok:234,play:122,funny:78
八、Markdown转换器
你一向喜欢在Windows的记事本里写文章,为了能方便的生成网页,你使用Markdown的格式写了篇文章,现在需要一个把Markdown转换成HTML格式的程序。
功能描述:将这个文本文档里的内容转换成HTML文档。要尽可能的支持Markdown标签,越多越好。建议使用正则表达式。
九、邮件轰炸机
你的一个朋友生日快到了,你决定搞个恶作剧——用邮件塞满他的邮箱。
功能描述:首先去注册十个邮箱,然后用这是个邮箱轮流发送随机生成的邮件内容给你的朋友。调整发送的频率,以免被服务器拒绝。
十、用邮件控制电脑
你的电脑放在宿舍,这时你在教室上课,你又决定搞个恶作剧吓吓装病请假在宿舍玩游戏的室友。
功能描述:使用邮件发送特定的命令,让电脑上的程序判断发信方是否为控制邮箱,如果是就执行发送过来的命令。通过不同的方式实现尽可能多的功能。