Форум программистов, компьютерный форум CyberForum.ru

Проверить, является ли слово перевертышем - C++

Восстановить пароль Регистрация
 
tohir_91
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 52
19.01.2013, 15:32     Проверить, является ли слово перевертышем #1
Дано слово. Проверить, является ли оно перевертышем (перевертышем називается слово, читаемое одинаково как с начала, так и с конца)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
19.01.2013, 15:40     Проверить, является ли слово перевертышем #2
tohir_91 Имеете ввиду является ли слово палиндромом?

Добавлено через 5 минут
Можно вот так сделать
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
#include <iostream>  
 
bool func(char* str) 
{  
    int size = strlen(str); 
    int i, j, count = 0; 
 
    for ( i = 0, j = size - 1; i < size / 2; i++, j--) 
        if(str[i] == str[j]) 
            count++;  
    if(count == size / 2) 
        return true; 
    else 
        return false;
}
 
int main() 
{ 
    char str[20]; 
 
    std::cout << "Inter word " << std::endl; 
    std::cin >> str;  
    
    if(func(str)) 
        std::cout << "Yes " << std::endl; 
    else 
        std::cout << "No " << std::endl;
}
Добавлено через 22 секунды
Можете посмотреть в поиске, много раз подобное решалось
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.01.2013, 15:55     Проверить, является ли слово перевертышем #3
Или как-нибудь так.
C++
1
2
3
4
5
6
7
8
bool is_palindrome(char * str) 
{  
    for(int i = 0, j = strlen(str) - 1; j > i; ++i, --j)
        if(str[i] != str[j])
            return false;
            
    return true;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
19.01.2013, 19:45     Проверить, является ли слово перевертышем #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
bool isPalindrome(const std::string &s)
{
    for (size_t i=0; i < s.length() / 2; i++)
        if (s[i] != s[s.length() - 1 - i]) return false;
    return true;
}
 
int main()
{
    std::cout << std::boolalpha << isPalindrome("abcba");
}
Добавлено через 1 минуту
Или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
bool isPalindrome(const std::string &s)
{
    for (size_t i=0; i < s.length() / 2; i++)
        if (*(s.begin() + i) != *(s.rbegin() + i)) return false;
    return true;
}
 
int main()
{
    std::cout << std::boolalpha << isPalindrome("abcba");
}
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
19.01.2013, 21:12     Проверить, является ли слово перевертышем #5
C++
1
2
3
4
bool isPalindrome(const std::string &s)
{
    return std::equal(s.begin(), s.end(), s.rbegin());
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
19.01.2013, 21:18     Проверить, является ли слово перевертышем #6
Итого:
C++
1
2
3
4
bool isPalindrome(const std::string &s)
{
    return std::equal(s.begin(), s.begin() + (s.end() - s.begin()) / 2, s.rbegin());
}
Yandex
Объявления
19.01.2013, 21:18     Проверить, является ли слово перевертышем
Ответ Создать тему
Опции темы

Текущее время: 22:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru