StreamReader sr = new StreamReader(@"C:\Users\ilyae\OneDrive\Рабочий стол\textlab2.txt");// открываем текстовый файл // читаем первую строчку
List a = new List(); // конвертируем строчку в тип "CharArray" и записываем в список
List b = new List(); // создаем список для записи конечного результата
List count = new List(); // создаем список для записи количества символов
while (!sr.EndOfStream) // читаем файл до конца
{
string st = sr.ReadLine(); //читаем строчку из файла
a = new List(st.ToCharArray()); //конвертируем ее в тип Char и добавляем в список
for (int i = 0; i < a.Count; i++) // счётчик для списка
{
int k = 1; //счётчик для записи количества символом
for (int j = i + 1; j < a.Count; j++) // счётчик для перебора элементов списка
{
if (a[i] == a[j]) // если найдены одинаковые символы,
{
k++; // счётчик увеличивается
a.RemoveAt(j); // а элемент из второго массива удаляется.
}
}
count.Add(k); // добавляем конечное количество символом в список
}
int n = b.Count - 1; // количество символов во втором списке
for (int i = 0; i < b.Count; i++) // счётчик для списка b
{
for (int j = 0; j < a.Count; j++) // счётчик для списка a
{
if (b[i] == a[j]) // если элемент из списка b совпадает с элементом из a,
{
count[i] += count[j + n]; // то к элементу из списка b суммируется количество элементов из списка a
a.RemoveAt(j); // удаляем элемент из списка а
count.RemoveAt(j + n); // удаляем элемент из списка количества символов, т.к. он уже суммирован
}
}
}
for (int j = 0; j < a.Count; j++) b.Add(a[j]); // оставшиеся элементы из списка a добавляем в список b
}
for (int i = 0; i < b.Count; i++) Console.Write(b[i] + " - " + count[i] + "\r\n"); // выводим символы и их количество
sr.Close(); // закрываем файл