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

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

09.02.2018, 16:21. Показов 1231. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru