|  | 
 
| 
【问题描述】
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)
 | 
 |