lsdsg 发表于 2021-6-30 22:27:14

大佬帮忙修改一下代码

【问题描述】

    本题目要求读入一个字符串,输出字符串的最长数字子串。

【输入形式】

    输入一个字符串
【输出形式】

    输出最长数字子串,若有多个最长数字子串输出最后一个,若字符串无数字字符,则输出“No digits”。

【输入样例】

sdffsd123werrer456fgdgdg1dfgdf12

【样例输出】

456
【样例说明】


string = input()
result, record = '',
for i in range(len(string)):
    if string.isdigit():
      result += string
    else:
      if len(result) >= record - record:
            record =
      result = ''
print(string:record])

qq1151985918 发表于 2021-6-30 23:51:56

第一行改成
string = input() + "*"
就对了,给输入的字符串最后加个字符,随便什么字符,只要不是数字就可以
你代码的问题就在这里

灰晨 发表于 2021-7-1 17:35:36

这个代码的问题就是最后一位是数字的时候record不会改变,所以改变record的代码要放到前面,在if string.isdigit()里,或者同楼上给字符串加一个非数字字符结束
string = input()
result, record = '',
for i in range(len(string)):
    if string.isdigit():
      result += string
      if len(result) >= record - record:
            record =
    else:
      result = ''
print(string:record])
也可以这样写
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)
页: [1]
查看完整版本: 大佬帮忙修改一下代码