Подсчитать слова, которые начинаются на введённый символ с помощью Dictionary - C#
Формулировка задачи:
Используя класс Dictionary, посчитать к-во слов, которые начинаются на введённый пользователем символ (букву) и отобразить буквы, встречаемые в начале слов данной строки меньше остальных
Решение задачи: «Подсчитать слова, которые начинаются на введённый символ с помощью Dictionary»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CyberForum { class Program { static void Main(string[] args) { string testStr = "Используя класс Dictionary, посчитать к-во слов, которые начинаются на введённый пользователем символ (букву) и отобразить буквы, встречаемые в начале слов данной строки меньше остальных"; Dictionary<char, List<string>> resultDictionary=new Dictionary<char, List<string>>(); char key; int minCount; //разбиваем строку на слова и загоняем все в Dictionary по первой букве foreach (var word in testStr.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries)) { key = word.ToCharArray()[0]; if (!resultDictionary.ContainsKey(key)) resultDictionary.Add(key, new List<string>()); resultDictionary[key].Add(word); } Console.WriteLine("Исходная строка: " + testStr); Console.Write("Введите символ: "); ConsoleKeyInfo ch = Console.ReadKey(); Console.WriteLine("\nКоличество слов, начинающихся на букву \'{0}\': {1}", ch.KeyChar, resultDictionary.ContainsKey(ch.KeyChar)?resultDictionary[ch.KeyChar].Count():0); //находим минимальное количество слов по ключу minCount = resultDictionary.Min(pair => pair.Value.Count()); Console.Write("Буквы, встречаемые в начале слов данной строки меньше остальных ({0} раз): ", minCount); foreach (KeyValuePair<char, List<string>> keyValuePair in resultDictionary) { if (minCount == keyValuePair.Value.Count()) Console.Write("{0}, ", keyValuePair.Key); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д