|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【问题描述】
本题目要求读入一个字符串,输出字符串的最长数字子串。
【输入形式】
输入一个字符串
【输出形式】
输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出“No digits”。
【输入样例】
sdffsd123werrer456fgdgdg1dfgdf12
【样例输出】
456
【样例说明】
string = input()
result, record = '', [0, 0]
for i in range(len(string)):
if string[i].isdigit():
result += string[i]
else:
if len(result) >= record[1] - record[0]:
record = [i - len(result),i]
result = ''
print(string[record[0]:record[1]])
这个代码的问题就是最后一位是数字的时候record不会改变,所以改变record的代码要放到前面,在if string[i].isdigit()里,或者同楼上给字符串加一个非数字字符结束
- string = input()
- result, record = '', [0, 0]
- for i in range(len(string)):
- if string[i].isdigit():
- result += string[i]
- if len(result) >= record[1] - record[0]:
- record = [i - len(result)+1,i+1]
- else:
- result = ''
- print(string[record[0]:record[1]])
复制代码
也可以这样写
- string = input()
- result, record = '', 0
- for i in string:
- if i.isdigit():
- result += i
- if len(result) >= record:
- record = len(result)
- new = result
- else:
- result = ''
- print(new)
复制代码
|
|