Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Определить, является ли строка палиндромом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Угадай число http://www.cyberforum.ru/cpp-beginners/thread1750059.html
Угадай число Ограничение времени 2 секунды Ограничение памяти 512Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt Это интерактивная задача. Некто загадал целое...
C++ Переделать программу нахождения пересечения прямой с окружностью с Pascal под С++ Нужно переделать под С++ uses crt; var r,a,b:real; a1,b1,c1,d,x1,y1,x2,y2:real; begin clrscr; write('R0='); readln(r); writeln('Коэффициенты a,b:'); readln(a,b); http://www.cyberforum.ru/cpp-beginners/thread1750050.html
C++ Сделать выборку между событиями с разными вероятностями
Здравствуйте, как реализовать такое? Есть событие A1, A2, ... Ai и есть массив распределения этих вероятностей p{P(A1), P(A2), P(A3), ...P(Ai)} и нужно, чтобы программа выбрала одно из этих...
C++ Разработать функцию, сравнивающую две строки
Всем привет. Возникла у меня проблема, т.к. я дуб. Задание:Разработайте функцию, которая сравнивает две строки, пропуская при этом все встречающиеся пробелы и табуляции. Кто может помочь с этим,...
C++ Создать класс, описывающий выпуклый 4-хугольник, вершины которого заданы координатами точек http://www.cyberforum.ru/cpp-beginners/thread1750038.html
Создать класс, описывающий выпуклый 4-хугольник, вершины которого заданы координатами точек. перегрузить операцию унарного отрицания так, чтобы получить четырехугольник, симметричный данному...
C++ Вводить массив символов до тех пор, пока два последних введенных символа не будут равны двум первым Ввод массива символов до тех пор, пока два последних введенных символа не будут равны двум первым введенным символам. Вот мой код, введение массива почему-то прерывается на первом же введенном... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
01.06.2016, 14:11
Цитата Сообщение от SONCAAJP Посмотреть сообщение
подумать над таким вот вопросом: "В каком случае строка всегда будет проигрышной, то есть не будет являться палиндромом?"
Ну, строка очевидно не палиндром, если ее концы не равны. Это подсказка к рекурсивной реализации:
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
//Пользователь с клавиатуры вводит строку. Нужно определить является
//ли строка палиндромом, и (это уже не в формате кода) подумать над
//таким вот вопросом: "В каком случае строка всегда будет проигрышной, "
//"то есть не будет являться палиндромом?"
///////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
///////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
///////////////////////////////////////////////////////////////////////////////
bool    is_palindrom( T_str     const   &   s )
{
    return      s.size()    <   2
 
            ||      s.front()   ==  s.back()
 
                &&  is_palindrom
                        (
                            s.substr    (
                                            1,
                                            s.size() - 2
                                        )
                        );
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        std::cout   <<  "s: ";
        T_str   s;
 
        getline (
                    std::cin,
                    s
                );
 
        std::cout   <<  (
                            is_palindrom( s )
                                ?   "is palindrom"
                                :   "is NOT palindrom"
                        )
 
                    <<  std::endl
                    <<  std::endl;
    }//for
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru