Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Xotav
0 / 0 / 0
Регистрация: 23.12.2016
Сообщений: 3
1

В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом

23.12.2016, 21:48. Просмотров 902. Ответов 1
Метки нет (Все метки)

Народ, помогите пожалуйста. Нужно написать программу, используя динамический массив. Вот условие задачи: В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом. Не могу понять как это сделать. Заранее спасибо!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2016, 21:48
Ответы с готовыми решениями:

Найти количество символов всех строк файла и количество символов в определенной строке
Здравствуйте! Я хотел бы попросить помощи в решении задачки! У меня не получается найти...

Найти ее максимальную возрастающую подпоследовательность
Здравствуйте, помогите студентке, завтра надо сдать задачи, одна не получается Дана...

Найти количество символов в строке, найти заданные буквы, разделить количество букв на количество символов
Написать код который сперва подсчитывает количество символов в строке а потом из этих находит буквы...

Найти максимальную возрастающую подпоследовательность в одномерном массиве
Помогите найти максимальную возрастающую подпоследовательность в одномерном массиве.

В заданном числе найти максимальную по длине подпоследовательность
В данном числе m найти максимальную по длине подпоследовательность так,чтобы элементы были в...

1
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.12.2016, 23:45 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

функцию проверки на полиндром можно оптимизировать
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
#include <iostream>
#include <string>
using namespace std;
 
inline bool isPalindrome(const string& str)
{
    return string(str.crbegin(), str.crend()) == str;
}
 
int main()
{
    string input("arozaupalanalapuazora");
    //getline(cin, input);
 
    struct
    {
        size_t beg, len = 0;
    } MAX;
 
    for (size_t i(0), end(input.size()), pos; i != end; ++i)
    {
        if (i > end / 2 && MAX.len >= (end + 1) / 2)
            break;
 
        for (pos = string::npos; (pos = input.rfind(input[i], pos)) != i; --pos)
        {
            string temp
            {
                input.cbegin() + i,
                input.cbegin() + pos + 1
            };
 
            if (isPalindrome(temp) && pos - i + 1 > MAX.len)
                MAX.beg = i, MAX.len = pos - i + 1;
        }
    }
 
    cout << input << endl;
    cout << (MAX.len ? input.substr(MAX.beg, MAX.len) :
        string(1, input.front())) << endl;
 
    system("pause");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 23:45

В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3
и вот 2 задачка. В заданной строке символов установить пробелы вместо символов,номера позиций...

Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта...

Найти максимальную по длине подпоследовательность так, чтобы элементы были в возрастающем порядке
В данном числе m найти максимальную по длине подпоследовательность так,чтобы элементы были в...


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

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

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