You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改sys.stdin.readline()实现一次性读取全部输入数据

一次性读取输入的代码修改方案

你可以通过sys.stdin.read()一次性读取全部标准输入内容,再按行拆分处理,无需逐行输入,调试时直接粘贴整段输入即可,修改后的代码如下:

import sys

def IsBinarySearchTree(tree):
    # 此处保留你原本的二叉搜索树判断逻辑即可
    pass

def main():
    # 一次性读取所有输入,按行拆分,自动过滤空行避免格式干扰
    all_input = sys.stdin.read()
    all_lines = [line.strip() for line in all_input.splitlines() if line.strip()]
    nodes = int(all_lines[0])
    tree = []
    for i in range(nodes):
        tree.append(list(map(int, all_lines[i+1].split())))
    if IsBinarySearchTree(tree):
        print("CORRECT")
    else:
        print("INCORRECT")

if __name__ == "__main__":
    main()

逻辑说明

  • sys.stdin.read()会读取标准输入的全部内容直到EOF结束,调试时粘贴完所有输入后,按Ctrl+D(Windows系统按Ctrl+Z后回车)即可触发输入结束
  • 整体逻辑和你原有的逐行读取逻辑完全兼容,不需要修改二叉搜索树判断的核心代码
  • 额外增加了空行过滤逻辑,输入前后的多余换行、空行不会影响代码运行

本地调试优化技巧

如果是本地IDE调试,你还可以直接把测试用例写死在代码里,完全不需要手动输入:

# 替换原来的all_input = sys.stdin.read() 行即可
test_input = """3
1 1 2
2 -1 -1
3 -1 -1
"""
all_lines = [line.strip() for line in test_input.splitlines() if line.strip()]

调试完成后改回读取sys.stdin即可提交,不需要调整其他逻辑。

内容的提问来源于stack exchange,提问作者jabberwoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 04:54:05