Вопрос задан 24.06.2023 в 02:12. Предмет Информатика. Спрашивает Юркевич Наргиза.

СРОЧНО!!!ПОЖАЛУЙСТА!!!НА С++!!! Самая частая буква Дана строка, возможно, содержащая пробелы.

Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще всего. При решении этой задачи заглавные и строчные буквы считаются одинаковыми, а прочие символы, не являющиеся буквами, не учитываются. При решении этой задачи нельзя пользоваться вложенными циклами. Входная строка должна обрабатываться за один проход. Входные данные Дана непустая строка. Выходные данные Программа должна вывести в первой строке все буквы, которые встречаются чаще всего в исходной строке. Выводить буквы необходимо в заглавном написании, в алфавитном порядке, без пробелов. Во второй строке выведите единственное число — сколько раз в данной строке встречаются эти буквы. Примеры Ввод Вывод - We all live in the Yellow Submarine! EL 5
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Маловичко Павел.

Ответ:

#include <iostream>

#include <cctype>

using namespace std ;

int main() {

string s;

int freqs[26] = { 0 };

getline( cin, s );

for (auto c : s) {

if (isalpha(c)) {

freqs[toupper(c) - 'A'] += 1;

}

}

int max = 0;

string out = "";

for (int i = 0; i < 26; i++) {

if (freqs[i] == max) {

out.push_back((char)'A' + i);

} else if (freqs[i] > max) {

out = "";

out.push_back((char)'A' + i);

max = freqs[i];

}

}

cout << out << endl;

cout << max;

return 0;

}

Объяснение:

удачки с сириусом мужик)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на C++ без использования вложенных циклов, вы можете воспользоваться хеш-мапой для подсчета частоты встречающихся букв. Вот пример реализации:

cpp
#include <iostream> #include <string> #include <unordered_map> #include <cctype> int main() { std::string input; std::getline(std::cin, input); std::unordered_map<char, int> letterFrequency; for (char c : input) { if (std::isalpha(c)) { // Преобразуем символ в верхний регистр для учета заглавных и строчных букв c = std::toupper(c); letterFrequency[c]++; } } int maxFrequency = 0; for (const auto& pair : letterFrequency) { maxFrequency = std::max(maxFrequency, pair.second); } std::string mostFrequentLetters; for (const auto& pair : letterFrequency) { if (pair.second == maxFrequency) { mostFrequentLetters.push_back(pair.first); } } // Сортируем буквы в алфавитном порядке std::sort(mostFrequentLetters.begin(), mostFrequentLetters.end()); std::cout << mostFrequentLetters << std::endl; std::cout << maxFrequency << std::endl; return 0; }

Этот код сначала создает хеш-мапу letterFrequency, чтобы подсчитать частоту букв во входной строке, игнорируя регистр и не-буквенные символы. Затем он находит максимальную частоту и собирает буквы с этой максимальной частотой в строку mostFrequentLetters, сортируя их в алфавитном порядке. Наконец, выводит результат.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос