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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ не могу доработать программу http://www.cyberforum.ru/cpp-beginners/thread262300.html
Доброго времени суток! не могу доработать программку.. надо что бы она выводила не один единственный вариант, а прорабатывала все возможные комбинации и выводила их общие количество задача о 8ми ферзях. #include <stdlib.h> #include <iostream.h> using namespace std;
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!-..... Рекурсивная формула http://s16.***********/i190/1103/14/45e49352882d.jpg Функция:sin(x) Вот набросал, незнаю правильно или нет.Помогите пожалуйста. #include<stdio.h> #include<conio.h> #include<math.h>
C++ Builder Как заставить нормально работать с fstream в Borland C++ Builder 6 http://www.cyberforum.ru/cpp-beginners/thread262272.html
Проблема такая. Объявлена глобальная переменная типа fstream. Если вызов происходит в например обработчике нарисованной на форме кнопки, то все работает. Но если этот файл начать использовать например в функции-члене класса, то компилятор признает это корректным, но вывода не происходит( Например в MS Visual Studio 2008 такой проблемы не замечал. Что делать?
C++ Построить на экране график функции подвижным визирем ис рисунка. Составить программу, которая строит на экране график функции подвижным визирем ис рисунка. (Кривая графика появляется из кончика стрелки; скорость движения стрелки 1 ... 2,5 см / сек; стрелка - полупрозрачная; движение визиря сопровождается звуковым сигналом переменной тональности). подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
23.03.2011, 01: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 почему-то не котируется.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru