Вопрос задан 04.12.2023 в 10:46. Предмет Информатика. Спрашивает Иванов Иван.

C++ Палиндром Дано слово, состоящее только из заглавных и строчных латинских букв. Проверьте,

верно ли, что это слово читается одинаково как справа налево, так и слева направо (то есть является палиндромом), если считать заглавные и строчные буквы неразличающимися. Выведите слово YES, если слово является палиндромом, и слово NO, если не является. При решении этой задачи нельзя пользоваться вспомогательными массивами или строками.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Конотоп Варя.

Ответ:

Объяснение:

#include <iostream>

using namespace std;

int main()

{

   string a;

   cin >> a;

   for (int i = 0; i < a.size(); i++)

       if (a[i] < 'a')

          a[i] = (char)(((int)a[i]) + 32);

       

   bool flag = true;

   for (int i = 0; i<a.size(); i++) {

       if (a[i] != a[a.size() - 1 - i]) {

           flag = false;

           break;

       }

   }

   if (flag)

       cout << "YES";

   else

       cout << "NO";

   return 0;

}


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

Сначала нужно привести все буквы слова к одному регистру, например, нижнему. Это можно сделать с помощью функции tolower().

Затем, пока указатели не пересекутся (то есть пока первый указатель меньше или равен второму), сравниваем символы, на которые указывают указатели. Если они не равны, то слово не является палиндромом и выводим "NO". Если все символы совпадают, то сдвигаем первый указатель вправо, а второй - влево.

Если указатели пересеклись, то слово является палиндромом и выводим "YES".

Пример кода на языке C++:

```c++ #include #include

bool isPalindrome(std::string word) { int i = 0; int j = word.length() - 1;

while (i < j) { if (tolower(word[i]) != tolower(word[j])) { return false; } i++; j--; }

return true; }

int main() { std::string word; std::cin >> word;

if (isPalindrome(word)) { std::cout << "YES"; } else { std::cout << "NO"; }

return 0; } ```

При вводе слова "Madam" программа выведет "YES", так как это слово является палиндромом. Если ввести слово "Hello", программа выведет "NO", так как это слово не является палиндромом.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос