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

Python3新手求助:如何将HackerRank输入转换为可用字符串?

解决HackerRank输入转换的困惑(针对「Breaking the Records」题目)

嘿,刚接触Python 3和HackerRank的话,遇到输入处理的问题太正常了!我当初第一次在HackerRank提交代码时,也卡在这里好久——毕竟IDLE里我们可以直接写死字符串测试,但HackerRank是从标准输入流读数据,不过掌握方法后就超简单~

核心输入处理方法

针对「Breaking the Records」的输入要求(第一行整数n,第二行n个空格分隔的整数),你只需要两步就能把输入转成可用的格式:

  • 读取比赛场数n:用input()读取第一行内容,再转成整数:
    n = int(input())
    
  • 读取分数列表:同样用input()读取第二行,用split()把空格分隔的字符串拆成列表,再通过map(int, ...)把每个元素转成整数,最后转成Python列表:
    scores = list(map(int, input().split()))
    

结合题目写完整代码示例

这里给你一个「Breaking the Records」的完整可运行代码,输入处理部分已经搞定,直接提交到HackerRank就能用:

# 读取输入
n = int(input())
scores = list(map(int, input().split()))

# 初始化最高、最低分和计数
current_max = current_min = scores[0]
break_max = break_min = 0

# 遍历分数统计破纪录次数
for score in scores[1:]:
    if score > current_max:
        current_max = score
        break_max += 1
    elif score < current_min:
        current_min = score
        break_min += 1

# 输出结果
print(break_max, break_min)

通用输入处理思路(适用于其他HackerRank题目)

其他题目输入格式可能不同,但核心逻辑是一致的:

  • 每一行输入用input()读取,需要转类型的就用int()/float()转换;
  • 如果一行有多个元素,用split()分割(默认按空格,也可以指定分隔符,比如split(',')处理逗号分隔的情况);
  • 如果需要读取大量行,可以用sys.stdin模块,但新手阶段用input()循环读取就足够应对大部分题目了。

比如如果题目要求读取多行数据,你可以这样写:

# 读取k行数据
k = int(input())
for _ in range(k):
    line = input().strip()  # strip()去掉首尾空白字符
    # 处理每一行的内容

这样你就能把HackerRank的输入轻松转换成Python里能用的数据结构啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:23:33