2016-02-04 4 views
1

Я пытался сопоставить шаблон внутри строки. У меня заканчиваются идеи, как это сделать на Java с хорошей временной сложностью. неСоответствие шаблону: соответствие строкам с рисунком

Нет его не простое соответствие регулярного выражения (но любило быть опровергнут)

То, что я пытаюсь это,

Pattern: "1221" (Средства 1 слово повторяется один раз, второе слово повторяется дважды, последнее слово совпадает с первым словом)

Действительных Входной: «aabbbbbbaa» (аа происходит в начале и в конце, в то время как средняя часть занята БББОМ повторять дважды)

Я попытался следующие подходы, но с треском провалился

  • Я попытался петля ввод с рисунком. Но это не решило проблему, хотя с большим количеством циклов я могу ее достичь, но она увеличивает временную сложность экспоненциально.
  • Пробная рекурсия и снова бесполезно.

Какие еще подходы я могу попробовать?

Я думаю, что динамическое программирование может быть ответом, но я не могу определить условие завершения.

Любая помощь будет оценена по достоинству.

+0

Добавьте код, который вы пытались – Tushar

+0

я не хочу код, Я могу закодировать себя. Я просто хочу этого подхода. Хотя я хотел бы иметь образец. Как я упоминал в своем посте, я публикую два моих подхода. – Novice123

+0

Звучит очень близко к [этому] (https://www.codeeval.com/open_challenges/130/). – alfasin

ответ

2

Вы можете использовать простые регулярные выражения, например:

^(.+)(.+)\2\1$ 

Это именно то, что и хотят:

enter image description here

+0

Вы уверены, что это сработает? Я так не думаю. Образец и ввод могут измениться. Шаблон может быть 1111, 12341, 112 или что-то – Novice123

+0

@ Novice123, вы можете динамически создавать регулярные выражения, я считаю. Регулярное выражение, которое я предоставил для шаблона '1221' –

+0

ok спасибо. Я попытаюсь принять ответ, если он решает ответ. Спасибо за объяснение – Novice123

Смежные вопросы