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

Палиндром-ли вся строка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не могу доработать программу http://www.cyberforum.ru/cpp-beginners/thread262300.html
Доброго времени суток! не могу доработать программку.. надо что бы она выводила не один единственный вариант, а прорабатывала все возможные комбинации и выводила их общие количество задача о 8ми...
C++ Создать объявление класса и разработать программу-драйвер, которая продемонстрирует работу класса. Класс Triangle (треугольник). Класс хранит Декартовы координаты трех углов треугольника. Конструктор принимает три группы координат. Должны быть предусмотренные функции-элементы, которые вычисляют... http://www.cyberforum.ru/cpp-beginners/thread262296.html
C++ Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию
Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию. Следует предусмотреть возможность выбора пользователем режима работы: добавление или отображение...
найти суму ряда C++
Нужно найти суму ряда з заданою точностью e=10^-4 (тоисть это 0.001).Члены меньше e не считать.Показать как получена рекурсивна формула U_k+1 Ряд:x/1!-x^3/3!+x^5/5!-..... Рекурсивная формула...
C++ Построить на экране график функции подвижным визирем ис рисунка. http://www.cyberforum.ru/cpp-beginners/thread262262.html
Составить программу, которая строит на экране график функции подвижным визирем ис рисунка. (Кривая графика появляется из кончика стрелки; скорость движения стрелки 1 ... 2,5 см / сек; стрелка -...
C++ Построить на экране кривую по заданному параметрическому уравнению. Построить на экране кривую по заданному параметрическому уравнению. Режим дисплея графический (graphics_mode VGAHI 640X480). График кривой выводить линией, характеристики которой (стиль, толщина,... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3

Палиндром-ли вся строка - C++

23.03.2011, 01:21. Просмотров 4425. Ответов 21
Метки (Все метки)

Был сегодня на собеседовании, одно из заданий было определить является-ли строка палиндромом.
Пример строки был задан такой: а роза упала на лапу азора.
Пробелы могут быть несемметричны.
Входная строка не должна меняться.

Я написал там на листочке нечто вроде.

C++
1
2
3
4
5
6
7
8
bool isPal(const std::string& str)
{
    std::string new_str=const_cast<char*>(str.c_str());
    new_str.erase(std::remove(new_str.begin(), new_str.end(), ' '), new_str.end());
    std::string new_str_rev=new_str;
    std::reverse(new_str_rev.begin(), new_str_rev.end());
    return new_str == new_str_rev;
}
На что мне сказали, что условие не выполняется. Ну впринципе конечно да, но ведь исходная строка не меняется никаким макаром.

Подумав сейчас решил написать некий такой вариант. Впринципе определяет по идее, но не уверен в правильности.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool isPal(const std::string& one)
{
    for(size_t i=0, j=one.size()-1; i < one.size() && j > 0; ++i, --j)
    {
        if(one[i] == ' ')
            ++i;
        if(one[j] == ' ')
            --j;
        else if(one[i] != one[j])
            return false;
    }
    return true;
}
Ну и еще вопрос на засыпку, почему на собеседованиях просят точный ответ на инструкцию вроде

C++
1
2
int i=5; 
i=++i + ++i;
И ответ, что это UB почему-то не котируется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru