Advertisement
daniil_mironoff

Ex. 6.15 (2)

May 23rd, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.09 KB | None | 0 0
  1. // ЗАДАНИЕ 6.15 (2)
  2. // Дана строка. Подсчитать самую длинную последовательность
  3. // подряд идущих одинаковых букв.
  4.  
  5. #include <iostream>          // Для ВВОДА и ВЫВОДА
  6. #include <string>            // Для string
  7.  
  8. using namespace std;         // ПРОСТРАНСТВО ИМЁН
  9.  
  10. int main() {
  11.     // Ввод строки
  12.     string str;
  13.     cout << "Enter string: ";
  14.     getline(cin, str);
  15.    
  16.     // Счетчик символов в слове
  17.     int count;
  18.     // Максимальное значение
  19.     int max;
  20.    
  21.     // Если первый символ не буква
  22.     if (str[0] < 65 || str[0] > 122 || (str[0] > 90 && str[0] < 97)) {
  23.         // То счетчик начнется с 0
  24.         count = 0;
  25.         max = 0;
  26.     } else {
  27.         // Иначе начнется с 1
  28.         count = 1;
  29.         max = 1;
  30.     }
  31.    
  32.     // Перебор символов вводимой строки
  33.     for (int i = 1; str.length() > i; i++) {
  34.        
  35.         // Если это не буква
  36.         if (str[i] < 65 || str[i] > 122 || (str[i] > 90 && str[i] < 97)) {
  37.             // Если последняя последовательность
  38.             // была больше наибольшей предыдущей
  39.             if (count > max) {
  40.                 max = count;
  41.             }
  42.            
  43.             count = 0;
  44.             continue;
  45.         }
  46.        
  47.         // Если эта буква прерывает последовательность
  48.         if (str[i] != str[i - 1]) {
  49.             // Если последняя последовательность
  50.             // была больше наибольшей предыдущей
  51.             if (count > max) {
  52.                 max = count;
  53.             }
  54.            
  55.             count = 1;
  56.             continue;
  57.         }
  58.        
  59.         count++;
  60.     }
  61.    
  62.     // Вывод результата
  63.     cout << "Max count: " << max << endl;
  64.    
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement