Advertisement
RenSafaray

Untitled

Apr 20th, 2022
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.77 KB | None | 0 0
  1. StreamReader sr = new StreamReader(@"C:\Users\ilyae\OneDrive\Рабочий стол\textlab2.txt");// открываем текстовый файл // читаем первую строчку
  2. List<char> a = new List<char>(); // конвертируем строчку в тип "CharArray" и записываем в список
  3. List<char> b = new List<char>(); // создаем список для записи конечного результата
  4. List<int> count = new List<int>(); // создаем список для записи количества символов
  5. while (!sr.EndOfStream) // читаем файл до конца
  6. {
  7.     string st = sr.ReadLine(); //читаем строчку из файла
  8.     a = new List<char>(st.ToCharArray()); //конвертируем ее в тип Char и добавляем в список
  9.  
  10.     for (int i = 0; i < a.Count; i++)  // счётчик для списка
  11.     {
  12.         int k = 1; //счётчик для записи количества символом
  13.         for (int j = i + 1; j < a.Count; j++) // счётчик для перебора элементов списка
  14.         {
  15.             if (a[i] == a[j]) // если найдены одинаковые символы,
  16.             {
  17.                 k++; // счётчик увеличивается
  18.                 a.RemoveAt(j); // а элемент из второго массива удаляется.
  19.             }
  20.         }
  21.         count.Add(k); // добавляем конечное количество символом в список
  22.     }
  23.     int n = b.Count - 1; // количество символов во втором списке
  24.     for (int i = 0; i < b.Count; i++) // счётчик для списка b
  25.     {
  26.         for (int j = 0; j < a.Count; j++) // счётчик для списка a
  27.         {
  28.             if (b[i] == a[j]) // если элемент из списка b совпадает с элементом из a,
  29.             {
  30.                 count[i] += count[j + n]; // то к элементу из списка b суммируется количество элементов из списка a
  31.                 a.RemoveAt(j); // удаляем элемент из списка а
  32.                 count.RemoveAt(j + n); // удаляем элемент из списка количества символов, т.к. он уже суммирован
  33.             }
  34.         }
  35.     }
  36.     for (int j = 0; j < a.Count; j++) b.Add(a[j]); // оставшиеся элементы из списка a добавляем в список b
  37. }
  38. for (int i = 0; i < b.Count; i++) Console.Write(b[i] + " - " + count[i] + "\r\n"); // выводим символы и их количество
  39. sr.Close(); // закрываем файл
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement