Вопрос задан 18.06.2023 в 11:48. Предмет Информатика. Спрашивает Мирная Диана.

Напишите пожалуйста код для c++ Строка содержит цифры, буквы и незначительные символы (пробел,

'+', '-', '!', '@', '#', '$', '%', '^' , '&' , '?' , '*', '(', ')' , '/', '[', ']', '{', '}', '<', '>'). Проверить, является ли он палиндромом без учета незначимых символов. Палиндром, оборотень, рак лит. налево). Входные данные Программа считывает строку символов с клавиатуры. Исходные данные Программа выводит на экран TRUE, если данная строка является палиндромом, FALSE – в противном случае. Примеры входящих и исходящих данных Введение: +++897$%$#* [email protected]@ Вывод: TRUE Введение: Zxc***----5%%cx^^^z Вывод: FALSE
0 0
Перейти к ответам

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

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

#include <iostream>

#include <string>

#include <cctype>

using namespace std;

signed main() {

 

string line, buff = "";

bool isPalindrome = true;

getline(cin, line);

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

 if (isalnum(line[i]))

  buff += line[i];

}

for (int i = 0; i < buff.size() / 2; ++i)

{

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

 {

  isPalindrome = false;

  break;

 }

}

if (isPalindrome)

 cout << "TRUE";

else

 cout << "FALSE";

return 0;

}

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

Вот пример кода на C++, который выполняет проверку, является ли введенная строка палиндромом без учета незначимых символов:

```cpp #include #include #include

bool isPalindrome(const std::string& str) { // Функция для проверки, является ли символ значимым auto isSignificant = [](char c) { return std::isalnum(c) || c == ' ' || c == '+' || c == '-' || c == '!' || c == '@' || c == '#' || c == '$' || c == '%' || c == '^' || c == '&' || c == '?' || c == '*' || c == '(' || c == ')' || c == '/' || c == '[' || c == ']' || c == '{' || c == '}' || c == '<' || c == '>'; };

// Создаем новую строку, содержащую только значимые символы std::string filteredStr; for (char c : str) { if (isSignificant(c)) { filteredStr += std::tolower(c); // Приводим к нижнему регистру для учета регистра } }

// Проверяем, является ли отфильтрованная строка палиндромом int left = 0; int right = filteredStr.length() - 1; while (left < right) { if (filteredStr[left] != filteredStr[right]) { return false; } ++left; --right; }

return true; }

int main() { // Ввод строки с клавиатуры std::cout << "Введите строку: "; std::string input; std::getline(std::cin, input);

// Проверка и вывод результата if (isPalindrome(input)) { std::cout << "TRUE" << std::endl; } else { std::cout << "FALSE" << std::endl; }

return 0; } ```

Пример ввода: ``` Введите строку: 897$%$#*+@! ``` Вывод: ``` TRUE ```

Пример ввода: ``` Введите строку: Zxc***----5%%cx^^^z ``` Вывод: ``` FALSE ```

Этот код преобразует введенную строку, удаляя все незначимые символы и приводя оставшиеся символы к нижнему регистру. Затем он проверяет, является ли полученная строка палиндромом.

0 0

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

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

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

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