|
2 / 2 / 2
Регистрация: 01.11.2013
Сообщений: 154
|
|
Распаковать строку03.04.2017, 01:50. Показов 2699. Ответов 10
Метки нет (Все метки)
Всем привет,имеется следующая строка на входе "2[abc]",на выходе должен получить "abcabc",вот еще пример:
на входе "2[abc3[abcd]]",а на выходе "abcabcdabcdabcabcdabcd",на входе"3[d]3[nm]",а на выходе "dddnmnmnm",то есть string в квадратных скобках должен повторяться N раз. Предположим что входные данные будут введены пользователем без ошибок(в квадратных скобках могут находиться только буквы,N>0,а формат скобок будет введен правильно). Никак не приходит в голову разделить это все по частям и подобраться к верному решению. Буду благодарен за подсказку,решить хотелось бы самому,поэтому прошу не писать готовый код. Спасибо Добавлено через 4 часа 41 минуту Все еще нужна помощь
0
|
|
| 03.04.2017, 01:50 | |
|
Ответы с готовыми решениями:
10
Распаковать zip архив Как распаковать архив ZLib C++ Распаковать беззнаковое целое число в четыре символа |
|
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
|
||||||
| 03.04.2017, 03:17 | ||||||
|
Как вариант можно так:
1 - проверяем баланс скобок 2 - находим последнюю [ и первую ] после неё, сохраняем подстроку внутри скобок и значение слева 3 - вырезаем значение слева и скобочки 4 - на это место ставим N сохранённый подстрок, где N - значение, которое сохранили на шаге 2 2 - переходим ко второму пункту Или так: Описываем древовидную структуру, в основе которой лежит связный список, который может хранить элементы 2-ух типов, либо строку, либо число и указатель на следующий список, который также может хранить элементы двух типов, таким образом test string1[a]2[b3[c]] превращается в
И обрабатываем дерево, допустим рекурсивно. В теории должно работать
0
|
||||||
|
2 / 2 / 2
Регистрация: 01.11.2013
Сообщений: 154
|
||
| 03.04.2017, 04:54 [ТС] | ||
|
0
|
||
|
|
||
| 03.04.2017, 09:16 | ||
|
1.
2. Перед квадратными скобками читается только одна десятеричная цифра? Что должно получиться в случае: "32[X]"?
0
|
||
|
2 / 2 / 2
Регистрация: 01.11.2013
Сообщений: 154
|
|||||||||||
| 03.04.2017, 14:26 [ТС] | |||||||||||
Добавлено через 1 минуту Добавлено через 23 минуты Добавлено через 21 минуту Добавлено через 45 минут код вроде более менее работает,и у меня следующие вопросы: 1) как обработать входные данные так чтобы метод второй переменной менялся в зависимости от случая на find_first_one или find_last_one? так как метод find_first_one второй переменной подходит для иерархии и может обработать строку "3[v2[b]]",но такого типа строку "2[a]3[bc]" уже не обработает,так как здесь понадобиться на входе метод find_last_one для второй переменной. 2)Как обработать в моем случае N>=10 ? 3)А такой тип строк "[[]][]" потребует разных значений,один раз find_last_of,а при следующей итерации уже find_first_of должно вызываться,то есть эти методы должны вызываться переменно,как следует проверить в какой итерации какой метод вызывать? Спасибо.
0
|
|||||||||||
|
2 / 2 / 2
Регистрация: 01.11.2013
Сообщений: 154
|
||
| 03.04.2017, 16:49 [ТС] | ||
|
0
|
||
|
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
|
|||||||
| 03.04.2017, 20:48 | |||||||
Сообщение было отмечено Yarik199 как решение
Решение
0
|
|||||||
|
2 / 2 / 2
Регистрация: 01.11.2013
Сообщений: 154
|
||
| 04.04.2017, 01:44 [ТС] | ||
|
0
|
||
|
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
|
||
| 04.04.2017, 02:17 | ||
|
1201 value += 1 * 1 value += 10 * 0 value += 100 * 2 value += 1000 * 1
1
|
||
|
2 / 2 / 2
Регистрация: 01.11.2013
Сообщений: 154
|
||
| 04.04.2017, 02:52 [ТС] | ||
|
Спасибо,все понятно.Хотел немного видоизменить код,но почему то компилятор ругается если вместо вашей строки вставить функцию atoi
0
|
||
| 04.04.2017, 02:52 | |
|
Помогаю со студенческими работами здесь
11
Распаковать zip строку Как запаковать и распаковать файлы? Ну хотя бы распаковать? распаковать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU
YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей.
Звучит. . .
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|