С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.01.2018
Сообщений: 28

Выделить самую длинную последовательность в тексте

09.02.2018, 16:21. Показов 1193. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В данном тексте,выделить самую длинную последовательность,которая составлена из цифр и букв,которые чередуются между собой(Пример : a1b2c3v4).
1.Как задать этот текст,и эту последовательность?
2.Как правильно сравнить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.02.2018, 16:21
Ответы с готовыми решениями:

Определить самую длинную последовательность цифр в тексте
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна...

Найти в тексте самую длинную последовательность из одинаковых букв
Здравствуйте! Нужно написать программу, которая выполняет следующие функции: найти в тексте самую длинную последовательность из одинаковых...

Найти в тексте самую длинную последовательность символов, не содержащую пробелов
Нужно в тексте найти самую длинную последовательность символов, не содержащую пробелов. Если таких последовательностей с максимальной...

6
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
09.02.2018, 16:38
AnAlCH, обычно я даю цитаты на правила форума, те пункты, которые вы частично или полностью нарушили, когда человек даже не пытается решить задание самостоятельно.

1. Текст как массив определенной длины char *text = new char[size]; или char text[size]; Последовательность можно выделить двумя указателями на начало вхождения и на конец char *fisrt, *last;
2. А сравнивать несчем, нужно шаблон проверять. Если текущий символ цифра - предыдущий должен быть буквой и наоборот.

Добавлено через 1 минуту
Правила https://www.cyberforum.ru/cpp-... ment3.html

4.7 Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
09.02.2018, 16:42
Цитата Сообщение от AnAlCH Посмотреть сообщение
Как задать этот текст,и эту последовательность?
C++
1
2
std::string str;
std::getline(std::cin, str);
Цитата Сообщение от AnAlCH Посмотреть сообщение
Как правильно сравнить?
как вариант
C++
1
if ((std::isdigit(str[i]) && std::isalpha(str[i - 1])) || (std::isdigit(str[i - 1]) && std::isalpha(str[i])))
0
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
10.02.2018, 11:38
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
#include <iostream>
#include <string>
#include <cctype>
 
std::string::size_type find_max(const std::string& s, std::string::size_type& n){
    std::string::size_type i, j, k, p = std::string::npos, m = s.length();
    bool g1, g2;
    for(i = k = 0; i < m;){
        if(std::isalnum(s[i])){
            g1 = std::isdigit(s[i]) == 0;
 
            for(j = i + 1; (j < m) && std::isalnum(s[j]); ++j){
                g2 = std::isdigit(s[j]) == 0;
                if(g1 == g2)
                    break;
                g1 = g2;
            }
 
            if((j - i) > k){
                k = j - i;
                p = i;
                n = k;
            }
            i = j;
        } else
            ++i;
    }
    return p;
}
 
int main(void){
    std::string s = "2a8p3, 1A2B3C4D5E6F79, a1b2c3v4";
/*
    std::cout << "Enter: ";
    std::getline(std::cin, s);
*/
    std::string::size_type p, n;
    if((p = find_max(s, n)) != std::string::npos)
        std::cout.write(&s[p], n);
    std::cin.get();
    return 0;
}
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
10.02.2018, 19:30
Геомеханик, AnAlCH, а у меня 24

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
#include <iostream>
#include <string>
 
inline bool check(const std::string &s, std::string::size_type pos)
{
    char a{s[pos]}, b{s[pos - 1]};
    return (isdigit(a) && isalpha(b)) || (isdigit(b) && isalpha(a));
}
 
int main()
{
    const std::string s = "asdf8a8aa1b2c3v4899898a9a9dsaf";
    std::string::size_type count = 1, start, size = 0;
    for (size_t i = 1, n = s.size(); i < n; ++i)
        if (check(s, i))
        {
            ++count;
            if (count > size)
                start = i - count + 1, size = count;
        }
        else
            count = 1;
    std::cout << s << ": " << s.substr(start, size) << std::endl;
}
1
0 / 0 / 0
Регистрация: 06.01.2018
Сообщений: 28
17.02.2018, 19:22  [ТС]
А можно пожалуйста объяснить там,закоментировать?
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
17.02.2018, 20:50
AnAlCH, Документация по ключевому слову inline

Документация по строкам (std::string)
Тебе отуда надо
- size_type
- operator[]
- constructor
- substr

Документация по функции которая проверяет является ли симовл цифрой (isdigit), можно написать свою, для практики.

Тут можешь посмотреть информацию о типе данных char

Документация по size_t

Документация по std::cout который является производным от std::basic_ostream
- operator<<
- std::endl

Больше вопросов быть не должно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2018, 20:50
Помогаю со студенческими работами здесь

В данном тексте найти самую длинную последовательность символов, не содержащую пробелов
привет помогите решить) задача: В данном тексте найти самую длинную последовательность символов, не содержащую пробелов. Если таких...

Определить самую длинную строку в тексте
Определить самую длинную строку в тексте. Найденную строку передавать в главную функцию. И ещё, не могу понять почему если задать размер...

Определеить самую длинную последовательность в строке
По задаче нужно найти самую длинную последовательность симоволов в строке(не цифр и не букв,а знаков типо !&quot;№;№;! и т.д.). Вот...

Найти самую длинную монотонную последовательность
Добрый вечер. Помогите с задачей - Найти максимальную по длине монотонную ( либо неубывающую, либо невозрастающую) подпоследовательность....

Удалить самую длинную последовательность нулей
Дан массив из N элементов. Удалить самую длинную последовательность нулей (одинаковой последовательности нет). В первой строчке...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru