Слово чемпион C++

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

Входные данные

   Предложение на неизвестном языке.

Выходные данные

   Номер слова чемпиона.

 

#include <iostream>

#include <string.h>

using namespace std;

const int registerShift = 'A' - 'a'; // Сдвиг от верхнего регистра к нижнему по таблице ASCII

// Функция, для определения, является ли текущий символ "буквой" в контексте данной задачи bool IsAllowedSymbol(char symbol) {

return symbol >= '1' && symbol <= '9' || symbol >= 'a' && symbol <= 'z' || symbol >= 'A' && symbol <= 'Z' ? true : false; }

// Функция, для определения, является ли текущее слово палиндромом

bool IsPalindrom(char *word, int begin, int end) {

return end <= begin ? true : word[begin] != word[end] ? false : IsPalindrom(word, ++begin, --end); }

// Функция, которая переводит все слово в нижний регистр

void ToLowerCase(char *word) {

for (int i = 0; i < strlen(word); i++) {

if (word[i] >= 'A' && word[i] <= 'Z') word[i] -= registerShift; }

}

int main() {

char word[1001];

int wordSize, maxSize = 0, indexOfPalindrom = 0;

for (int i = 1; cin >> word; i++) {

ToLowerCase(word); // Перевод слова в нижний регистр

if (!IsAllowedSymbol(word[strlen(word) - 1]))

word[strlen(word) - 1] = '\0'; // Не учитывать последний символ слова, если это не "буква" (т. е. знак препинания)

wordSize = strlen(word);

if (wordSize > maxSize) {

if (IsPalindrom(word, 0, wordSize - 1)) {

maxSize = wordSize; indexOfPalindrom = i;

} // Храним новый максимум и индекс текущего наибольшего палиндрома, если он был найден

}

} // Чтение по словам до конца предложения

cout << indexOfPalindrom;}

Назад

Повышение продаж с помощью веб-форм Разложение числа на простые множители Как качественный контент способствует продвижению сайта Как выбрать хостинг Как писать SEO-тексты? Что такое SEO оптимизация сайта


Хостинг

Есть решение которого нет на сайте? Пиши admin@devexe.top