Python中不使用for循环实现输入反转并删除0字符的方法
优化方案
你原有实现的核心问题在于频繁调用list.insert(0, i),该操作每次都要移动列表内所有已存储元素,整体时间复杂度为O(n²),长文本输入下性能损耗明显,且最终输出为字符列表,如果需要字符串结果还要额外拼接。
最优简洁实现
直接利用Python字符串内置操作,时间复杂度O(n),仅需2行即可完成需求:
# 先删除所有0,再通过切片反转字符串 res = input().replace('0', '')[::-1] print(res)
如果需要和原有代码一致输出列表格式,修改打印语句即可:
print(list(res))
其他等效实现方式
如果需要显式遍历逻辑,也可以改用生成器+反转函数的写法,可读性更强:
res = ''.join(c for c in reversed(input()) if c != '0') print(res)
内容的提问来源于stack exchange,提问作者user14263836
相关产品推荐
相关产品推荐

