[C# Advanced] Exercises - Sets and Dictionaries - 08. Hands of Cards
Здравейте!
Написах(преписах) кода от видеотo
въпреки че го няма целия код никъде в окончателния му вид(това, което се копира от преподавателя и "субмитва" в Judge-a) и получих 33 точки.
Къде сгреших? Къде е разликата - грешката ми(Къде са разликите - грешките ми)?
Преподавателят "субмитна" в Judge-a кода, който аз преписах от него и получи 100 точки, а аз само 33 точки?
Ето моя вариант на кода
Имате ли идея защо ми гърми нулевият тест?
using System;
using System.Collections.Generic;
using System.Linq;
namespace HandsOfCards
{
class Program
{
static void Main(string[] args)
{
string[] input = Console.ReadLine()
.Trim().Split(new char[] { ',', ':', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
Dictionary<string, Dictionary<string, int>> output = new Dictionary<string, Dictionary<string, int>>();
while (input[0] != "JOKER")
{
if (!output.ContainsKey(input[0]))
{
output.Add(input[0], new Dictionary<string, int>());
}
for (int i = 1; i < input.Length; i++)
{
if (!output[input[0]].ContainsKey(input[i]))
{
output[input[0]].Add(input[i], GetValue(input[i].ElementAt(0), input[i].Last()));
}
}
input = Console.ReadLine()
.Trim().Split(new char[] { ',', ':', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
}
foreach (var item in output)
{
Console.WriteLine($"{item.Key}: {item.Value.Values.Sum()}");
}
}
static int PowOfHand(char ch)
{
switch (ch)
{
case '1': return 10;
case '2': return 2;
case '3': return 3;
case '4': return 4;
case '5': return 5;
case '6': return 6;
case '7': return 7;
case '8': return 8;
case '9': return 9;
case 'J': return 11;
case 'Q': return 12;
case 'K': return 13;
case 'A': return 14;
case 'S': return 4;
case 'H': return 3;
case 'D': return 2;
case 'C': return 1;
default: return 0;
}
}
static int GetValue(char a, char b)
{
return PowOfHand(a) * PowOfHand(b);
}
}
}