0 / 0 / 0
Регистрация: 21.02.2017
Сообщений: 9
|
|
1 | |
Необходимо выводить только подстроки, повторяющиеся дважды подряд21.02.2017, 01:43. Показов 1552. Ответов 4
Метки нет (Все метки)
Уже довольно много времени провел в попытках реализовать данный алгоритм, пока что безуспешно. Либо не работает, либо работает не так как нужно.
Цель: выводить только подстроки, повторяющиеся дважды подряд. Примеры: 5643564312564 -> 56435643 фыывугуга -> ыыугуг 12344321 -> 44 22222222 -> 22222222 Спасибо заранее за подсказки.
0
|
21.02.2017, 01:43 | |
Ответы с готовыми решениями:
4
Необходимо добавить проверку введенных значений а и b. Если введены не числа то необходимо выводить сообщение Функция должна выводить несколько значений, но выводить только одно. Почему? Требуется нажать дважды из-за подряд идущих методов ReadKey и ReadLine? Найти в строке все повторяющиеся подстроки |
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|
21.02.2017, 04:44 | 2 |
Сформулируйте более точно, а то возникают неоднозначности:
bbb -> ? bb, bbb ababbab -> ? (ab)(ab), (bab)(bab) aabaabbaab -> ? (aab)(aab)(a)(a), (a)(a)(a)(a)(b)(b)(a)(a), (a)(a)(baab)(baab)
0
|
0 / 0 / 0
Регистрация: 21.02.2017
Сообщений: 9
|
|
21.02.2017, 07:25 [ТС] | 3 |
bbb -> bb
ababbab -> (bab)(bab) aabaabbaab -> (a)(a)(baab)(baab) Приоритет у более длинных цепочек. Спасибо.
0
|
0 / 0 / 0
Регистрация: 21.02.2017
Сообщений: 9
|
|
24.02.2017, 17:04 [ТС] | 4 |
TopLayer, не уверен, увидели ли вы мое сообщение. Недавно на форуме, прошу прощения.
0
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|||||||||||
24.02.2017, 18:40 | 5 | ||||||||||
Сообщение было отмечено qwertyo1 как решение
Решение
qwertyo1, я видел ваше сообщение, но решать эту задачу мне было лень. Расскажу-ка я вам лучше алгоритм решения, а вы уж сами закодируйте. Итак, алгоритм:
1) Найти все двойные подстроки, сформировав список таких объектов:
2) Создать массив, содержащий лучшее решение для каждого префикса строки, индекс - длина префикса
bestSolutions[i] = лучшее из:а) bestSolutions[i-1] б) для каждой двойной строки, заканчивающейся на индексе i (doubledString.StartIndex + doubledString.Length - 1 == i) ,выбрать bestSolutions[doubledString.StartIndex] + input.Substring(doubledString.StartIndex, doubledString.Length) 4) Ответом на задачу будет bestSolutions[input.Length]
1
|
24.02.2017, 18:40 | |
24.02.2017, 18:40 | |
Помогаю со студенческими работами здесь
5
Повторяющиеся символы подряд Повторяющиеся встречи в outlook выводить как отдельную дату Подсчитать одинаковые элементы, присвоить им количество, и повторяющиеся не выводить Работа с текстом: не выводить слова, содержащие повторяющиеся буквы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |