Как найти максимальное количество одинаковых букв в строке

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
mirzabek.sattorov
Сообщения: 1
Зарегистрирован: 07 фев 2018, 12:06

07 фев 2018, 12:13

Как найти максимальное количество одинаковых букв в строке.
Например:
ввод: aas aas dtra ae
вывод: 6 а
Аватара пользователя
Din666
Сообщения: 51
Зарегистрирован: 17 июл 2015, 13:25
Откуда: Moscow
Контактная информация:

23 ноя 2020, 14:45

Привет Ромео.
Знаю, что это уже нафиг не нужно )))
Но прикольный вариант с минимальным количеством #include

Код: Выделить всё

#include <iostream>

int main() {

    char allSymbols[256] = {};
    struct {char symb; int count = 0;} maxSymInfo;
    for ( const char c: "aas aas dtra ae" ) {
        if ( ++allSymbols[c] > maxSymInfo.count) {
            maxSymInfo = {c, allSymbols[c]};
        }
    }
    std::cout << "max: "
              << maxSymInfo.symb
              << "=" 
              << maxSymInfo.count << std::endl;

    return 0;
}
/// % g++ -std=c++17 -o test test.cpp && ./test 
/// max: a=6
Ответить