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

HackerRank提交C#代码时出现stdout无响应错误求助

解决HackerRank C#提交「~ no response on stdout ~」问题

你的代码存在三个关键问题,导致输出不符合测试用例要求,进而触发stdout无响应提示:

  • 外层循环遗漏最后一个输入元素:i < input.Count - 1会跳过索引为input.Count-1的最后一个元素,HackerRank测试用例要求处理所有输入,这会直接导致输出缺失。
  • 内层循环遗漏字符串最后一个字符:j < data.Length - 1会跳过每个字符串的最后一个字符(索引data.Length-1),造成输出内容不完整。
  • 奇偶判断逻辑错误:你判断的是外层循环的索引i的奇偶性,但这类题目的要求通常是每个字符串内部字符的索引奇偶,即对单个字符串里的j(字符索引)做奇偶判断,而非外层的输入项索引i。

修正后的代码:

foreach (string data in input)
{
    string evenData = "", oddData = "";
    for (int j = 0; j < data.Length; j++)
    {
        if (j % 2 == 0)
        {
            evenData += data[j];
        }
        else
        {
            oddData += data[j];
        }
    }
    Console.WriteLine($"{evenData} {oddData}");
}

修改说明:

  1. 用foreach遍历所有输入元素,避免手动索引导致的遗漏问题;如果坚持用for循环,需改为i < input.Count。
  2. 内层循环条件改为j < data.Length,确保每个字符都被处理。
  3. 将奇偶判断的对象从i改为j,符合题目对单个字符串字符拆分的要求。
  4. 用字符串插值$"{evenData} {oddData}"替代字符串拼接,代码更简洁高效。

如果测试用例仍有问题,可检查:

  • 是否正确读取了输入(比如HackerRank中是否用Console.ReadLine()正确获取所有输入并存入input集合)
  • 确保没有额外的条件分支导致Console.WriteLine被跳过

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:12:22