Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 20

Отбор палиндромов

07.05.2019, 16:54. Показов 6089. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решаю задачу,но не могу понять что не так,помогите если несложно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <vector>
#include <string>
using namespace std;
 
bool IsPalindrom (string s){
    for (int i = 0; i < s.size()/2; ++i){
        if(s[i] != s[s.size() - i - 1]){
            return false;
        }
    }
    return true;
}
 
vector <string> PalindromFilter (vector <string> words, int minLenght){
    vector <string> result;
 for(auto a : words){
     if (a.size() >= minLenght && IsPalindrom(a) == true){
 
             result.push_back(a);
             cout<<a;
         }
     }
 
 
 return result;
 }
 
 
int main(){
 
    vector <string> a;
 
    int min;
 
    for(auto i:a){
 
        string x;
 
        cin>>x;
 
        if(IsPalindrom(x)==true)
 
        a.push_back(x);
 
 
    }
 
 
 
    cin>>min;
 
 
    PalindromFilter(a,min);
 
 
}
еще есть вопрос,как сделать цикл,чтобы я вводил слова до цифры,то есть я бы вышел из цикла после прочтения цифры но и эту бы цифру прочел бы,обычно же как,делаешь while до нажатия 0,и как бы этот 0 исчезает,а как бы закинуть эту цифру в переменную и отправить в функцию

Добавлено через 8 минут
Напишите функцию, которая

называется PalindromFilter
возвращает vector<string>
принимает vector<string> words и int minLength и возвращает все строки из вектора words, которые являются палиндромами и имеют длину не меньше minLength
Входной вектор содержит не более 100 строк, длина каждой строки не больше 100 символов.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2019, 16:54
Ответы с готовыми решениями:

Поиск Палиндромов
День добрый! нужна помощь вот в таком задании: Напишите программу для отыскания всех палиндромов в словаре. Затем найдите самый длинный...

Поиск чисел палиндромов (С++)
Добрый вечер, Друзья! Пожалуйста, помогите в решении лабораторной работы! Задача: Найти все числа – палиндромы из интервала от от а до...

Функция нахождения и удаления из текста слов- палиндромов
Не могли бы помочь в написании функции,которая будет удалять палиндромы в тексте,который был введен.

8
 Аватар для Krokodil9798
330 / 145 / 56
Регистрация: 17.10.2015
Сообщений: 580
07.05.2019, 18:18
Цитата Сообщение от batersit Посмотреть сообщение
не могу понять что не так
А что не так? В чём проблема?

Добавлено через 3 минуты
batersit, почему я спрашиваю - код абсурдный. Зачем искать в векторе с палиндромами палиндромы?

Добавлено через 1 минуту
Да и к тому же полная ахинея со считкой строк с консоли и добавлением в вектор.
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 20
07.05.2019, 18:30  [ТС]
"Да и к тому же полная ахинея со считкой строк с консоли и добавлением в вектор" Вот в этом главный вопрос,если же алгоритм я могу допереть,саму считку вообще не понимаю

Добавлено через 4 минуты
как создать такой цикл,чтобы в конце,при вводе цифры он и вектор заполнил и эту же цифру
0
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
07.05.2019, 18:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
bool IsPalindrom(std::string& str) {
    std::string::iterator lhs = str.begin(), rhs = str.end() - 1;
    while (lhs < rhs) {
        if (*lhs != *rhs) {
            return false;
        }
        ++lhs;
        --rhs;
    }
    return true;
}
 
std::vector<std::string> PalindromFilter(std::vector<std::string> words, int minLength) {
    std::vector<std::string> result;
    for (auto it : words) {
        if (it.size() >= minLength && IsPalindrom(it)) {
            result.push_back(it);
        }
    }
    return result;
}
 
 
int main() {
    std::vector<std::string> src;
    std::vector<std::string> pal;
    int minSize = 5;
    //std::cin >> minSize;
 
    src.emplace_back("asdghjkjh");
    src.emplace_back("ffdddjhgyy");
    src.emplace_back("abcdeedcba");
    src.emplace_back("abcdefedcba");
 
    pal = PalindromFilter(src, minSize);
    for (auto it : pal) {
        std::cout << it << '\n';
    }
 
    std::cout << '\n';
    system("pause");
    return 0;
}
Зачем класть цифру в вектор строк? Вам она отдельно жить мешает? Или задание такое?
0
 Аватар для Krokodil9798
330 / 145 / 56
Регистрация: 17.10.2015
Сообщений: 580
07.05.2019, 18:43
Цитата Сообщение от nalbe666 Посмотреть сообщение
C++
1
for (auto it : pal) {
Лучше всё-таки const auto&, копирования избежим.

Добавлено через 1 минуту
Да и память не помешало бы резервировать.
1
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 20
07.05.2019, 20:01  [ТС]
ну у нас получается данные которые мы отправляем в функцию уже заданны,а вот как сделать что мы их вводим сами,причем сначала вводим слова,потом уже вводим минимальный размер,получается мы заранее не знаем в какой момент остановить цикл,вот в этом и прикол,как сделать цикл ,который останавливается при вводе минимального значения и его запоминает
0
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
07.05.2019, 20:25
Лучший ответ Сообщение было отмечено batersit как решение

Решение

полная версия

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <vector>
#include <iostream>
#include <string>
 
 
bool IsPalindrom(std::string& str) {
    std::string::iterator lhs = str.begin(), rhs = str.end() - 1;
    while (lhs < rhs) {
        if (*lhs != *rhs) {
            return false;
        }
        ++lhs;
        --rhs;
    }
    return true;
}
 
std::vector<std::string> PalindromFilter(std::vector<std::string> words, int minLength) {
    std::vector<std::string> result;
    for (auto& it : words) {
        if (it.size() >= minLength && IsPalindrom(it)) {
            result.push_back(it);
        }
    }
    return result;
}
 
 
int main() {
    std::vector<std::string> src;
    std::vector<std::string> pal;
    std::string buffer;
    int minSize;
 
    std::cout << "Input words (break on empty):\n";
    while (true)
    {
        std::getline(std::cin, buffer);
        
        if (buffer.empty()) {
            break;
        }
        src.push_back(buffer);
        buffer.clear();
    }
    std::cout << "Input min word length: ";
    std::cin >> minSize;
 
    pal = PalindromFilter(src, minSize);
    for (auto& it : pal) {
        std::cout << it << '\n';
    }
 
    std::cout << '\n';
    system("pause");
    return 0;
}
1
 Аватар для SomniPhobia
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
07.05.2019, 20:29
Лучший ответ Сообщение было отмечено batersit как решение

Решение

Цитата Сообщение от batersit Посмотреть сообщение
как сделать что мы их вводим сами,причем сначала вводим слова,потом уже вводим минимальный размер,получается мы заранее не знаем в какой момент остановить цикл,вот в этом и прикол,как сделать цикл ,который останавливается при вводе минимального значения и его запоминает
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <windows.h>
#include <vector>
#include <string>
#include <iterator>
 
using namespace std;
 
bool is_num(const string& str);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    vector<string> words;
    size_t min_length;
 
    size_t scroll = 0u;
    for (; ; ++scroll)
    {
        string line;
        getline(cin, line);
        if (is_num(line))
        {
            min_length = stoi(line);
            break;
        }
        else
        {
            words.push_back(line);
        }
    }
 
    cout << endl;
    cout << "Записанные в контейнер слова" << endl;
    for (const auto& word : words)
    {
        cout << word << endl;
    }
    cout << endl;
    cout << "min_length = " << min_length << endl;
 
    system("pause");
    return 0;
}
 
bool is_num(const string& str)
{
    for (auto c : str)
    {
        if (!isdigit(static_cast<unsigned char>(c)))
        {
            return false;
        }
    }
    return true;
}
Миниатюры
Отбор палиндромов  
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 20
07.05.2019, 20:34  [ТС]
спасибо большое,эт круто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2019, 20:34
Помогаю со студенческими работами здесь

Функция подсчета палиндромов
Написала программу, которая обрабатывает строки, но одну функцию никак не могу написать. На вход подается строка, а функция должна находит...

Число трехбуквенных слов-палиндромов
Написать программу, считывающую текстовый файл (TEST.txt) и выводящую на экран число трехбуквенных слов-палиндромов (например,...

Определить количество палиндромов которые можно получить вычеркиванием из слова некоторого набора символов
Доброго времени суток. Нужна помощь с заданием на с++. Текст задания: Количество палиндромов (Время: 1 сек. Память: 16 Мб Сложность:...

Поиск палиндромов в заданной строке
Дана последовательность из латинских букв и цифр.Всего элементов не более ста.Ввод заканчивается тогда, когда введено более 100 элементов...

Задача про нахождение палиндромов
Помогите! нужно найти все числа-палиндромы, которые не превышают 100. заранее - спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru