首页 > 解决方案 > Hackerrank 30 天代码 - 第 8 天 & C# - 运行时错误

问题描述

我正在参加 30 天的 C# 代码编写。我在 8.Day(字典和地图)。我去运行我的代码,测试用例 0、测试用例 2、测试用例 3、测试用例 4 成功但测试用例 1 不成功。Hackerrank 向我展示了错误“运行时错误”。我不明白这个错误。谢谢你。

挑战:Hackerrank 第 8 天字典和地图

谁能弄清楚为什么我在 Python Hackerrank 30 Days of Challenge 中的这个练习的代码没有通过测试用例 1?

这是挑战:

目标今天,我们正在学习使用 Map 或 Dictionary 数据结构的键值对映射。查看教程选项卡以获取学习材料和教学视频!

任务 给定姓名和电话号码,组装一个电话簿,将朋友的姓名映射到他们各自的电话号码。然后,您将获得未知数量的姓名来查询您的电话簿。对于每个查询,将电话簿中的相关条目以 name=phoneNumber 形式打印在新行上;如果找不到条目,​​则打印 Not found 代替。

注意:您的电话簿应该是 Dictionary/Map/HashMap 数据结构。

输入格式

第一行包含一个整数,表示电话簿中的条目数。随后的每一行都以单行上的空格分隔值的形式描述了一个条目。第一个值是朋友的名字,第二个值是一个数字电话号码。

在电话簿条目的行之后,有未知数量的查询行。每行(查询)包含一个要查找的内容,您必须继续阅读行,直到没有更多输入。

注意:名称由小写英文字母组成,仅是名字。

输出格式

在每个查询的新行上,如果该名称在电话簿中没有相应的条目,则打印 Not found ;否则,以 name=phoneNumber 的格式打印完整信息。

这是我的代码:

using System;
using System.Collections.Generic;
using System.IO;

class Solution
{
    static void Main(String[] args)
    {
        var n = int.Parse(Console.ReadLine());
        var phoneBook = new Dictionary<string, int>();

        for (var i = 0; i < n; i++)
        {
            var entry = Console.ReadLine().Split(' ');
            var name = entry[0];
            var phone = int.Parse(entry[1]);
            phoneBook.Add(name, phone);
        }

        for (var i = 0; i < n; i++)
        {
            var name = Console.ReadLine();
            if (phoneBook.ContainsKey(name))
            {
                var phone = phoneBook[name];
                Console.WriteLine($"{name}={phone}");
            }
            else Console.WriteLine("Not found");
        }
    }
}

输入(标准输入)

100000
unayklejwm 53561825
ahiff 57272140
frlrecdfxo 28001354
aeccxyrbek 21112785
mlgdk 12405837
iyiyycfngr 23841264
subnwvrqdp 77688226
vhypdqfbdy 67846211
lcnbh 86026675
lxbjpmuhis 85475547
enfifbprov 20172436
hnjctgslxf 18125412
slfoglbvah 47530087
mpsrcmrkon 44365224
jnpslqvlkx 88071512
liwyjbsfkk 50646067
kyrkhaikuf 18535535
ubvfx 43551151
krger 80787433{-truncated-}

预期产出

Not found
ipwpabdefa=14170412
Not found
toykmviqbo=11872347
mooetebtqt=70658483
fbubawkkhq=10613664
Not found
ejqxn=77321147
Not found
Not found
Not found
Not found
xgfpx=58118174
Not found
odacddldrk=73267266
Not found
iakxugylkc=41875647
Not found
djtelththc=20278224
Not found{-truncated-}

结论

Runtime Error :/

我应该如何修复我的代码?

任何建议表示赞赏。

标签: c#dictionarymaps

解决方案


我完成了这个任务。

这是我的代码:

    static void Main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution */
    int n = Int32.Parse(Console.ReadLine());
    Dictionary <string, string> phonebook = new Dictionary <string, string>();
        
    for (int i=0; i<n; i++){
        string[] line = Console.ReadLine().Split(' ');
        phonebook[line[0]] = line[1];
    }
        
    string name;
    while ((name = Console.ReadLine()) != null){
        if (phonebook.ContainsKey(name))
            Console.WriteLine(name + "=" + phonebook[name]);
        else
            Console.WriteLine("Not found");
    }
}

推荐阅读