Тож я намагаюся працювати, хоча гра, що скремблірує, я намагаюся використовувати словник зі списками хетштету int. Я кладу букви в групи на основі їх значення (key = int = оцінка), як показано нижче.
HashSet<char> pointsONEList = new HashSet<char>(new char[] { "e", "a", "i", "o", "n", "r", "t", "l", "s", "u" });
HashSet<char> pointsTwoList = new HashSet<char>(new char[] { "d", "g" });
HashSet<char> pointsThreeList = new HashSet<char>(new char[] { "b", "c", "m", "p" });
HashSet<char> pointsFourList = new HashSet<char>(new char[] { "f", "h", "v", "w", "y" });
HashSet<char> pointsFiveList = new HashSet<char>(new char[] { "k" });
HashSet<char> pointsEightList = new HashSet<char>(new char[] { "j", "x" });
HashSet<char> pointsTenList = new HashSet<char>(new char[] { "q", "z" });
Dictionary<int, HashSet<char>> letterPoints = new Dictionary<int, HashSet<char>>();
letterPoints.Add(1, pointsONEList);
letterPoints.Add(2, pointsTwoList);
letterPoints.Add(3, pointsThreeList);
letterPoints.Add(4, pointsFourList);
letterPoints.Add(5, pointsFiveList);
letterPoints.Add(8, pointsEightList);
letterPoints.Add(10, pointsTenList);
Далі мені потрібно знайти спосіб відокремити слово та знайти кожного символу у слові, знайти його у списку, а потім додати до іншого словника за допомогою даного слова та суми всіх його цифр.
це те, що я до сих пір
int N = int.Parse(Console.ReadLine());
for (int i = 0; i < N; i++)
{
string W = Console.ReadLine();
int wordValue=0;
char[] splitWord = W.ToCharArray();
for (int j = 0; j < splitWord.Length; j++)
{
for (int h = 0; h < letterPoints.Count; h++)
{
}
}
}
Я не можу змусити його шукати весь словник
Відповіді:
2 для відповіді № 1З використанням LINQ
, ви можете зробити це в один рядок:
var points = splitWord.Sum(c => letterPoints.First(kvp => kvp.Value.Contains(c)).Key)
Цей код робить: для кожного символу в splitWord
знайди HashSet
отримайте відповідну клавішу з літерних точок, що містить символ, і підсумуйте всі клавіші та отримайте загальну точку.