Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Граф Артемий
-1 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 19
#1

Найти самый длинный палиндром предложения и напечатать его - C++

19.09.2015, 16:22. Просмотров 438. Ответов 2
Метки нет (Все метки)

2.В предложении слова отделяются друг от друга одним или большим числом пробелов. Палиндромом называется слово, которое читается одинаково слева направо и справа налево (например, «казак», «шалаш»). Найти самый длинный палиндром предложения и напечатать его. Если в предложении нет слов-палиндромов, напечатать «отсутствует».
http://www.cyberforum.ru/cpp-beginners/thread391352.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2015, 16:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти самый длинный палиндром предложения и напечатать его (C++):

Вывести самый длинный палиндром
Имеется файл-словарь, в котором записаны слова-палиндромы, как найти и вывести...

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

Найти самый длинный отрезок
длины отрезка заданы координатами концов.найти самый длинный отрезок.решить с...

Среди файлов, расположенных в каталоге найти самый длинный файл
б) Среди файлов, расположенных в каталоге c:\Winnt найти самый длинный файл.

Найти палиндром в строке, и вывести его
Помогите. Написать программу, которая ищет в строке номер символа, с которого...

2
Joey
Модератор
827 / 549 / 218
Регистрация: 05.05.2015
Сообщений: 3,181
Записей в блоге: 1
19.09.2015, 20:37 #2
Ну, для начала можно пойти окрестным путем - начать с поиска самого длинного слова в предложении, и далее:
проверяешь, палиндром или нет - если да, то вот оно! если нет, ищешь второе по длине слово(слова) и т.д.
Остается реализовать две функции: поиск самого длинного слова, и проверка на "палиндромность" слова.

Примечание: вторая функция для начала должна определять, сколько букв в проверяемом слове: если четное число, то палиндром будет следующего вида: AB...NN...BA, а если нечетного, то AB...N...BA
1
_Ivana
3232 / 1860 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
19.09.2015, 20:43 #3
Лучший ответ Сообщение было отмечено Граф Артемий как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
char *end  (char *p) {return *p ? end(p+1) : p-1;}
int length (char *p) {return *p ? 1+length(p+1) : 0;}
bool ispal (char *b, char *e) {return b>=e ? true : *b==*e && ispal (b+1, e-1);}
void strcp (char *s, char *r) {if (*s) {*r=*s; strcp(s+1, r+1);} else *r=0;}
void test  (char *s, char *r) {if (ispal(s, end(s)) && length(s)>length(r)) strcp(s, r);}
 
int main() {char s[100], r[100]=""; while (cin>>s) test(s,r); cout<<(*r ? r : "отсутствует"); return 0;}
https://ideone.com/t7GfiZ
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2015, 20:43
Привет! Вот еще темы с решениями:

Напечатать все слова заданного предложения, состоящие из тех же букв, что и первое слово предложения
Напечатать все слова заданного предложения (слова разделены пробелами),...

Найти в стеке самый максимальный элемент и удалить его
Доброго времени суток. У меня, к примеру, есть стек. В нем введено несколько...

Найти самый большой элемент матрицы по модулю и его индекс
дана квадратная матрица размером . найти самый большой элемент по модулю и его...

Найти самый отрицательный элемент массива и поменять его с последним элементом
В произвольном массиве А из N элементов найти самый отрицательный элемент и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru