很容易理解的方法和清晰的代码:
-
按字符串顺序判断是不是数字:
是数字放到暂存的列表里
不是数字则比较存在列表里的数字串和之前数字串的长度,比之前的长或者一样长就替换掉之前的,比之前的短就删掉
-
输出最长的字符串
import sys
def solve():
for line in sys.stdin:
# 字符串转列表进行遍历
str = list(line)
count = 0
length = 0
temp = []
dig = []
for i in range(str.__len__()):
if (str[i] >= '0' and str[i] <= '9'):
# 数字加一
count += 1
temp.append(str[i])
else:
if count >= length: # 当运行这里的代码的时候,说明运行到字母了
# 数字串大于之前的,由于题目要求长度相等输出最后一串,所以这里要用大于等于
length = count
count = 0
dig = temp.copy()
temp = []
else:
# 数字串较短则清空
temp = []
count = 0
# 结果输出
result = ''.join(dig)
print("%s,%d" % (result, length))
if __name__ == "__main__":
solve()
代码来自链接: