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

И снова палиндром - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ программа которая по номеру дня в году выводит число и месяц http://www.cyberforum.ru/cpp-beginners/thread349113.html
программа которая по номеру дня в году выводит число и месяц (например, 7-й день года — 7 января) что б при запуске появилось сообщение (Введите номер дня в году ) ну и вводим от 1 до 365...
C++ текстовый документ и масив господа подскажите, вот в текстовом документе мы имеем допустим фразу "Hello World" как мне её от туда извлеч и сделать что бы она была в символьном масиве. Заранее огромное всем спасибо!!! http://www.cyberforum.ru/cpp-beginners/thread349087.html
Запуск программы после ввода её названия C++
Подскажите пожалуйста какой аргумент нужно вводить в cin, чтобы когда пользователь прописывал название программы например calc.exe, а затем нажимал клавишу ввод - она запускалась ? Вот код: #include...
C++ Hello, World!
Добрый день. Купил книгу Б.Страуструпа - Принципы и практика использования С++, Напечатал первый код , при компиляции выскочили ошибки. #include "std_lib_facilities.h" int main() { ...
C++ Проблема с vector http://www.cyberforum.ru/cpp-beginners/thread349028.html
Объявляю булевый вектор vector<bool> used; затем заполняю его false'ами for (int i=0; i<n; i++) used = false; выходит ошибка при компиляции: Debug Assertion Failed!
C++ Посоветуйте среду программирования на С++ для новичков CodeBlocks к сожалению немного не правильно работает =( http://www.cyberforum.ru/cpp-beginners/thread347740.html#post1957942 Есть что-нибудь похожее? подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.09.2011, 22:36
Ещё вариант:

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
#include <iostream>
#include <string>
#include <algorithm>
 
std::string get_palindrome(std::string letters)
{
    typedef std::string str_t;
    typedef std::string::size_type str_size_t;
    typedef std::string::value_type str_value_t;
 
    std::sort(letters.begin(), letters.end());
 
    str_t palindrome;
    str_value_t middle;
    bool has_middle = false;
 
    for (str_size_t i = 0; i < letters.length(); ++i)
    {
        size_t cnt = std::count(letters.begin(), letters.end(), letters[i]);
 
        if ((cnt & 1) == 1)
        {
            if (!has_middle)
            {
                middle = letters[i];
                has_middle = true;
            }
        }
 
        palindrome += std::string(cnt / 2, letters[i]);
 
        i += cnt - 1;
    }
 
    return palindrome + (has_middle ? std::string(1, middle) : "") + std::string(palindrome.rbegin(), palindrome.rend());
}
 
int main()
{
    std::string letters;
 
    std::cout << "Enter letters: ";
    std::cin >> letters;
 
    std::cout << "Palindrome: " << get_palindrome(letters) << std::endl;
 
    return 0;
}
Добавлено через 1 минуту

Не по теме:

Хм... Пока писал, куча вариантов появилась, так что возможно, я повторяю кого-нибудь. Проверять лень))

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