多语言展示
当前在线:447今日阅读:126今日分享:42

一个计算机面试题的python解法

题目截图如下。现在,把题目延伸一下,在输入任意一串正整数的时候,都会成功运行。这样,用户可能随意的输入数字,并用空格或逗号隔开。'3 6 19 18  9  8 7 36   36''3 , 3, 19,18,9,8, 7, 36,   36'
工具/原料
1

电脑

2

python3.6

方法/步骤
1

由于用户输入数字字符串的时候,可能随意的用逗号、空格进行分隔,而且空格的数目可能随意,数字的位数也可能是任意位数,所以,粗暴的使用split分割字符串,可能是错误的。不论用户使用的是什么符号进行分割,都把分隔符号替换为空格;用空格分割字符串,可能出现多个空字符;然后,去除空字符,并把字符串转化为整数。

2

由于d里面有重复元素,所以,为避免重复元素扰乱输出,把列表的重复元素删掉,并重新排序。

3

这样,就可以完成给定的题目。无论用户是使用空格分割数字,还是使用逗号(包括中文逗号、英文逗号),都可以返回正确的结果。

4

但是,一旦用户输入了违规的字符串,比如,除了数字、空格、逗号,还出现了字母,程序就会报错。原因是'3a'不能够转化为整数。

5

如果用户非得使用字母或者别的非数字字符来分割数字,怎么办?那就用空格替换掉所有的非数字字符。

注意事项
1

这样,即便用户在数字之间输入了违规字符串,程序也会自动把违规字符串剔除,不会影响运行结果。

2

具体代码可以在pan.baidu.com/s/1ugtgVmHnjxvNyKQaAsv8zw下载试玩,kv6u是下载密码。

推荐信息