Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- bool itSymmetricWord(string word) {
- // Размер слова
- unsigned int sizeWord = word.size();
- // Цикл по буквам слова
- for (int i = 0; (sizeWord / 2) > i; i++) {
- // Если буквы не совпали, то слово уже не симметрично
- if (word[i] != word[sizeWord - i - 1]) {
- return false;
- }
- }
- return true;
- // Допустим sizeWord = 10 (слово asdfggfdsa)
- // и сейчас в цикле i = 2
- //
- // Значит:
- // word[i] = word[2] = d (as[d]fggfdsa)
- // word[sizeWord - i - 1] = word[7] = d (asdfggf[d]sa)
- //
- // буковки совпали!!! ( ~ happy ~ )
- //
- // p.s. таким способом можешь убедиться,
- // что алгоритм работает для любых слов
- // в т.ч. для слов из 1, 2 и нечетного кол-во букв
- }
- int main() {
- string str; // думаю понятно что это
- cout << "Enter string: "; // и это
- getline(cin, str); // это чтобы можно было вводить пробельчики
- string word; // тут храним просто слово, с которым ща работаем
- string maxWord; // тут храним самое большое симетричное слово
- // Цикл по символам
- for (char symb : str) {
- // Если наткнулись на пробел, значит слово закончилось и надо бы его обработать
- if (symb == ' ') {
- // Проверка на симетри
- if (itSymmetricWord(word)) {
- // Если это симметричное слово больше прошлого, то его запоминаем
- if (word.size() > maxWord.size()) {
- maxWord = word;
- }
- }
- word.clear(); // слово опустошаем
- }
- // Если не пробел, значит слово, записываем буковку
- else {
- word.push_back(symb);
- }
- }
- // Если строка закончилась, а слово еще осталось, то его надо дообработать
- if (!word.empty()) {
- if (itSymmetricWord(word)) {
- // Если это симметричное слово больше прошлого, то его запоминаем
- if (word.size() > maxWord.size()) {
- maxWord = word;
- }
- }
- }
- // Если вообще ни одного симметричного слова
- if (maxWord.empty()) {
- cout << "don't definded symmetric word" << endl;
- }
- else {
- cout << "max symmetric word: " << maxWord << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement