Палиндром – число (например, 404), буквосочетание, слово (например, топот, фин. saippuakauppias = продавец мыла — самое длинное употребительное слово-палиндром в мире) или текст («а роза упала на лапу Азора»), одинаково читающееся в обоих направлениях. Иногда палиндромом неформально называют любой симметричный относительно своей середины набор символов.
Требуется написать программу, которая определяет, является ли данное предложение палиндромом в различных смыслах.
Текстовый файл, содержащий одно предложение. Пример:
A nut for a jar of tuna
Определить:
1) Является ли каждое слово палиндромом (побуквенно).
Вывести в консоль каждое слово, содержащееся в предложении, в обратном порядке букв и решение (палиндром — y/n)
2) Является ли все предложение без учета пробелов палиндромом в смысле слова (пред. пункт). Например: «А роза упала на лапу Азора».
Вывести в консоль все предложение в обратном порядке букв (без пробелов) и решение (палиндром — y/n)
3) Является ли все предложение палиндромом в смысле слов как букв. Например, «я он ты он я», «привет тебе Азор тебе привет» — палиндромы.
Вывести в консоль предложение в обратном порядке слов и решение (палиндром — y/n)
Передачу имени входного файла реализовать через аргументы командной строки.
Пример вывода в консоль (использует файл из примера выше):
A nut for a jar of tuna
Words:
a - y
tun - n
rof - n
a - y
raj - n
fo - n
anut - n
Sentence as a word:
anutforajaroftuna - y
Sentence as a word set
tuna of jar a for nut a - n
Ещё примеры палиндромов:
Anne, I vote more cars race Rome to Vienna.
A new order began, a more Roman age bred Rowena
civic
dewed
deified
dad
mom
devoved
kayak
minim
radar
madam
Необходимо написать набор тестов используя приведённые слова и предложения. Желательно придумать свои.
Функции ввода/вывода нужно тестировать с помощью std::stringstream.