Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- StreamReader sr = new StreamReader(@"C:\Users\ilyae\OneDrive\Рабочий стол\textlab2.txt");// открываем текстовый файл // читаем первую строчку
- List<char> a = new List<char>(); // конвертируем строчку в тип "CharArray" и записываем в список
- List<char> b = new List<char>(); // создаем список для записи конечного результата
- List<int> count = new List<int>(); // создаем список для записи количества символов
- while (!sr.EndOfStream) // читаем файл до конца
- {
- string st = sr.ReadLine(); //читаем строчку из файла
- a = new List<char>(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; // количество символов во втором списке
- 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(); // закрываем файл
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement