Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 4
1

Выяснить, является ли данное слово палиндромом(перевертышем)

09.01.2014, 23:48. Показов 3952. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны три слова. Выяснить, является ли оно палиндромом(перевертышем), т.е таким, которое одинаково читается слева направо и справа налево. Определить функцию, позволяющую распознавать слова-палиндромы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2014, 23:48
Ответы с готовыми решениями:

Проверить, является ли данное число палиндромом(перевертышем)
Задача 5/7: Дано целое четырехзначное число. Проверить, является ли данное число...

Выяснить является ли хоть одно из данных чисел палиндромом(перевёртышем)
Даны 2 натуральных числа выяснить является ли хоть одно из них палиндромом(перевёртышем) тоесть...

Определить, является ли данное слово палиндромом
Помогите пожалуйста, не совсем хорошо понимаю программирование Ввести с клавиатуры слово длинной...

Является ли данное число палиндромом
дано натуральное число выяснить есть ли данное число палиндромом #include<iostream.h>...

5
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
09.01.2014, 23:51 2
Воспользуйтесь поиском:
Проверить, является ли введенная строка палиндромом
0
0 / 0 / 0
Регистрация: 02.07.2018
Сообщений: 3
25.07.2018, 02:42 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <vector>
 
char to_lower(char c)
{
    if (c >= 'A' && c <= 'Z')
    {
        c = c - 'A' + 'a';
    }
 
    return c;
}
 
int main()
{
    int n;
    std::cin >> n;
 
    std::vector<char> word(n);
 
    for (int i = 0; i < word.size(); ++i)
    {
        std::cin >> word[i];
        word[i] = to_lower(word[i]);
    }
 
    bool is_palindrome = true;
 
    for (int i = 0; i < word.size() / 2; ++i)
    {
        if (word[i] != word[word.size() - i - 1])
        {
            is_palindrome = false;
            break;
        }
    }
 
    if (is_palindrome)
    {
        std::cout << "yes";
    }
    else
    {
        std::cout << "no";
    }
}
0
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
26.07.2018, 11:16 4
Лучший ответ Сообщение было отмечено DobroAlex как решение

Решение

Можно же использовать STL:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
 * gcc version 6.3.0
 * 
 * Программа выводит приглашение:
 *      "Enter some number of words fo examine to palindrome:"
 * И ожидает пользовательский ввод в виде строки текста например:
 *      "repaper kayak madam" <Enter>
 * Затем Программа брабатывает каждое слово строки по отдельности
 * с учетом регистра. Если все слова в строке являются палиндромами,
 * то программа выводит в стандартный поток фразу:
 *      "All words are palindrome"
 * и выдает код возврата 0;
 *
 * Иначе, если хотя бы одно не является палиндромом программа выводит в
 * стандартный поток ошибок фразу:
 *      "Word: <word> is NOT palindrome"
 * и выдает код возврата 1.
 */
 
#include<iostream>
#include<algorithm>
#include<sstream>
#include<string>
 
using namespace std;
 
bool is_palindrome( const string& src_str ) {
    string reversed{src_str};
    reverse(reversed.begin(), reversed.end());
    return src_str == reversed;
}
 
int main()
{
    cout << "Enter some number of words fo examine to palindrome:\n";
 
    string str_line;
    getline(cin, str_line, '\n');
    istringstream buffer{ str_line };
 
    for (string word; buffer >> word; ) {
        if (!is_palindrome(word)) {
            cerr << "Word: " << word << " is NOT palindrome\n";
            return 1;
        }
    }
 
    cout << "All words are palindrome ;) \n";
    return 0;
}
1
1647 / 1095 / 488
Регистрация: 17.07.2012
Сообщений: 5,356
28.07.2018, 12:40 5
Можно еще лучше использовать STL.
C++
27
28
29
bool is_palindrome(const std::string& str ) {
    return std::equal(str.begin(), str.begin() + str.size() / 2, str.rbegin());
}
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
28.07.2018, 23:52 6
Как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
bool isPalindrom(string word)
{
    for (size_t i = 0; i < word.size() - i; i++)
        if (tolower(word.at(i)) != tolower(word[word.size() - i - 1]))
            return false;
    return true;
}
 
int main()
{
    string str;
    cin >> str;
    if (isPalindrom(str))
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
    return 0;
}
0
28.07.2018, 23:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2018, 23:52
Помогаю со студенческими работами здесь

Проверьте, является ли данное число палиндромом (перевертышем)
Дано натуральное n-значное число P. Проверьте, является ли данное число палиндромом...

Выяснить, является ли число палиндромом ( перевертышем ), с учетом четырех цифр
Дано натуральное число n (n 9999). Выяснить, является ли оно палиндромом ( перевертышем ), с...

Ввести слово. Определить является ли данное слово перевертышем
Ввести слово. Определить является ли данное слово перевертышем.

Даны 2 натуральных числа выяснить является ли хоть одно из них палиндромом (перевёртышем)
Даны 2 натуральных числа выяснить является ли хоть одно из них палиндромом(перевёртышем) тоесть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru