Ответ:
Объяснение:
#include <iostream>
#include <string>
#include <unordered_map>
int main() {
std::string line;
std::unordered_map<int, int> group_lengths;
int current_group_length = 0;
std::getline(std::cin, line);
for (char c : line) {
if (std::isdigit(c)) {
// Якщо це цифра, збільшуємо довжину поточної групи
current_group_length++;
} else if (current_group_length > 0) {
// Якщо це не цифра і довжина поточної групи більша ніж 0,
// зберігаємо її у словнику і обнуляємо довжину поточної групи
group_lengths[current_group_length]++;
current_group_length = 0;
}
// Якщо є поточна група у рядку, яка не була збережена у словнику
// (наприклад, рядок закінчувався цифрою), то зберігаємо її у словнику
if (current_group_length > 0) {
// Шукаємо найкоротшу групу
int min_length = line.length();
for (const auto& [length, count] : group_lengths) {
if (length < min_length) {
min_length = length;
// Виводимо найкоротшу групу і кількість таких груп
std::cout << "Shortest group length: " << min_length << std::endl;
std::cout << "Number of groups with this length: "
<< group_lengths[min_length] << std::endl;
return 0;
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Ответ:
Объяснение:
#include <iostream>
#include <string>
#include <unordered_map>
int main() {
std::string line;
std::unordered_map<int, int> group_lengths;
int current_group_length = 0;
std::getline(std::cin, line);
for (char c : line) {
if (std::isdigit(c)) {
// Якщо це цифра, збільшуємо довжину поточної групи
current_group_length++;
} else if (current_group_length > 0) {
// Якщо це не цифра і довжина поточної групи більша ніж 0,
// зберігаємо її у словнику і обнуляємо довжину поточної групи
group_lengths[current_group_length]++;
current_group_length = 0;
}
}
// Якщо є поточна група у рядку, яка не була збережена у словнику
// (наприклад, рядок закінчувався цифрою), то зберігаємо її у словнику
if (current_group_length > 0) {
group_lengths[current_group_length]++;
}
// Шукаємо найкоротшу групу
int min_length = line.length();
for (const auto& [length, count] : group_lengths) {
if (length < min_length) {
min_length = length;
}
}
// Виводимо найкоротшу групу і кількість таких груп
std::cout << "Shortest group length: " << min_length << std::endl;
std::cout << "Number of groups with this length: "
<< group_lengths[min_length] << std::endl;
return 0;
}