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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Угадай число http://www.cyberforum.ru/cpp-beginners/thread1750059.html
Угадай число Ограничение времени 2 секунды Ограничение памяти 512Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt Это интерактивная задача. Некто загадал целое число x (1 ≤ x ≤ n). Ваша программа должна угадать это число во взаимодействии с тестирующей системой. Всего можно делать два различных типа действий: ? y (1 ≤ y ≤ n) — попросить сравнить загаданное...
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)} и нужно, чтобы программа выбрала одно из этих событий при помощи генератора рандомных чисел? То есть, пример: Вероятность A = 0.8, вероятность B = 0.2, как при помощи функции rand() сделать выборку между этими двумя событиями? С одним понятно, а...
C++ Разработать функцию, сравнивающую две строки
Всем привет. Возникла у меня проблема, т.к. я дуб. Задание:Разработайте функцию, которая сравнивает две строки, пропуская при этом все встречающиеся пробелы и табуляции. Кто может помочь с этим, наверняка простым делом. Есть же такие функции в стандартной библиотеке, а как сделать так, что бы пропускались пробелы я не очень понимаю. Добавлено через 38 минут Появилась следующая идея....
C++ Создать класс, описывающий выпуклый 4-хугольник, вершины которого заданы координатами точек http://www.cyberforum.ru/cpp-beginners/thread1750038.html
Создать класс, описывающий выпуклый 4-хугольник, вершины которого заданы координатами точек. перегрузить операцию унарного отрицания так, чтобы получить четырехугольник, симметричный данному относительно точки пересечения диагоналей данного 4-хугольника.
C++ Вводить массив символов до тех пор, пока два последних введенных символа не будут равны двум первым Ввод массива символов до тех пор, пока два последних введенных символа не будут равны двум первым введенным символам. Вот мой код, введение массива почему-то прерывается на первом же введенном символе #include "stdafx.h" #include "stdio.h" #include <malloc.h> #include <windows.h> #include <locale.h> int main() подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
3014 / 1670 / 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
}
 
Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru