Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
#1

Рекурсивная функция определения палиндрома строки. - C++

03.11.2011, 03:43. Просмотров 1104. Ответов 2
Метки нет (Все метки)

Написал по заданию из книги Дейтелов.
C++
1
2
3
4
5
6
7
8
9
10
bool testPalindrome( const char arr[], const size_t &x, const size_t &y = NULL )
{
    if ( x == y || ( x + 1 == y && arr[ x ] == arr[ y ] ))
        return true;
    
    if ( arr[ x ] == arr[ y ] )
        testPalindrome( arr, x - 1, y + 1 );
    else
        return false;
}
Вроде все работает нормально, но мне кажется как то неуклюже все это выглядит. Поправьте пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2011, 03:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивная функция определения палиндрома строки. (C++):

Функция определения палиндрома - C++
Напишите функцию, которая называется IsPalindrom возвращает bool принимает параметр типа string и возвращает, является ли...

Рекурсивная функция для определения палиндромов - C++
Нужно написать программу , которая с помощью рекурсивной функции определяет, является ли строка палиндромом (радар, потоп, т.е. слова...

Рекурсивная функция определения минимального элемента массива - C++
Задан одномерный массив вещественных чисел. Написать программу определения минимального элемента массива x, содержащую рекурсивную функцию...

Рекурсивная функция вычисления длины строки - C++
Помогите пожалуйста решить задачу по программированию. Напишите рекурсивную функцию вычисления длины строки. Заранее благодарен.

Рекурсивная функция: все возможные перестановки символов строки - C++
Дана строка с n элементами. Например abs. Надо выводить все возможные варианты например abs asb bas bsa sab sba. Надо...

Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки - C++
вот код...есть ещё вариант с массивом, но он тоже не работает =( тем более препод сказал, что через массив делать не стоит...=( #include...

2
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
03.11.2011, 06:29 #2
В строке 7 у тебя не происходит возврат из функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
#include <cstring>
 
bool is_palindrome(const char* str, const size_t sz)
{
    if(sz == 1 || sz == 0 || (str[0] == str[sz - 1] && is_palindrome(str + 1, sz - 2)))
    return true;
 
    return false;
}
 
int main(int argc, char* argv[])
{
    for(int i = 1; i < argc; ++i)
    std::cout << '`' << argv[i] << "' is a palindrome? " << std::boolalpha
          << is_palindrome(argv[i], strlen(argv[i])) << std::endl;
    
    return 0;
}
Код
[nameless@desktop cpp]$ ./sample anna john "able was i ere i saw elba"
`anna' is a palindrome? true
`john' is a palindrome? false
`able was i ere i saw elba' is a palindrome? true
[nameless@desktop cpp]$
1
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
03.11.2011, 07:39  [ТС] #3
Ясно, спасибо, значит не до конца еще понял тему рекурсии, буду продолжать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2011, 07:39
Привет! Вот еще темы с ответами:

Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки - C++
плиииз...(((

Функция определения длины строки - C++
Подскажите, как написать функцию в С++, аналогичную функции strlen(функцию определения длины строки).

Функция определения длины первого сегмента строки - C++
Помогите! Напишите программу. Strcspn size_t strcspn(const char *s1,const char *s2) Функция определяет длину первого сегмента...

Рекурсивная функция - C++
Здраствуйте, пытаюсь написать лабу для нахождения пути в лабиринте, выбрал волновой алгоритм Ли. Для начала хочу просто заполнить...


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

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

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