Todd_22 @ 2024-12-19 16:45:17
有无python巨佬帮看看 ,功能已经全部实现,卡在输入格式了
问题是: 要按2次回车,一次作为结束标志,一次作为执行计算, 所以测试环境过不了,哎
下面是代码:
def count_zeros_and_ones(result_str):
count = 1 # 当前数字,记录它本身的个数
out_str = "" # 用来存放每一部分连续的数量
for i in range(1, len(result_str)):
if result_str[i] == result_str[i - 1]:
count += 1
else: # 变为另一个数字
out_str += str(count) # !存完再变count
count = 1 # 记录它本身的个数
# 最后一组不会变0或1了,记得补充上
out_str += str(count)
return out_str
matrix = []
while True:
row = input()
if row.strip() == "": # 判断是否输入了空行(换行)
break
matrix.append(row)
n = len(matrix)
result_str = ''.join(matrix)
# print(' '.join(f"{str(n)}" + count_zeros_and_ones(result_str)))
print(' '.join(f"{str(n)}{count_zeros_and_ones(result_str)}"))
by maxiaomeng @ 2024-12-19 17:13:47
@Todd_22
你可以使用try
和except
判断是否读到文件结尾,因为input()
在读入失败时会抛出异常。
while True:
try:
row = input()
except:
break
matrix.append(row)
by Todd_22 @ 2024-12-20 14:25:31
@maxiaomeng 你好,我已经进行了尝试,似乎并不能很好解决,在上述代码中我可以一直进行input()读取,且无法有效退出。
再次感谢你的回复
by maxiaomeng @ 2024-12-21 11:23:32
@Todd_22 本地测试时,你需要按下Ctrl+Z和回车(在Linux系统或IDLE中是Ctrl+D)才能告诉程序已经读到文件结尾,但评测时不需要,因为用的是文件。
by Todd_22 @ 2024-12-21 18:08:19
@maxiaomeng 感谢耐心已解决?
之前也忘记用flag标记交替输出了