Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Anna vs
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 4
1

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

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

Даны три слова. Выяснить, является ли оно палиндромом(перевертышем), т.е таким, которое одинаково читается слева направо и справа налево. Определить функцию, позволяющую распознавать слова-палиндромы.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 23:48
Ответы с готовыми решениями:

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

Является ли данное число палиндромом
дано натуральное число выяснить есть ли данное число палиндромом ...

Определить, является ли данное пятизначное число палиндромом
Программа должна определять, является ли данное пятизначное число палиндромом....

Проверить, является ли слово перевертышем
Дано слово. Проверить, является ли оно перевертышем (перевертышем називается...

Составить программу, выясняющую, является ли данное число палиндромом
Помогите, пожалуйста, решить задачу в С++. Составить программу, выясняющую,...

5
S_el
2151 / 1679 / 353
Регистрация: 15.12.2013
Сообщений: 6,644
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
moskitos80
69 / 69 / 33
Регистрация: 04.10.2011
Сообщений: 244
Завершенные тесты: 1
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
Новичок
Модератор
1504 / 974 / 463
Регистрация: 17.07.2012
Сообщений: 4,949
Завершенные тесты: 3
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
SuperKir
381 / 363 / 259
Регистрация: 10.03.2015
Сообщений: 1,545
Завершенные тесты: 1
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2018, 23:52

Выяснить, является ли строка палиндромом.
С клавиатуры вводится строка S. Она содержит различные символы и пробелы. Части...

Определить не является ли одно слово обращением (перевертышем) другого
1.Заданы два слова. Определить, не является ли одно обращением (перевертышем)...

Цикл: выяснить, является ли число палиндромом
дано натуральное число. выяснить является ли оно палиндромом т.е числом...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru