PanZverski's blog

By PanZverski, 12 years ago, In Russian

Привет.
Наверняка, кто-нибудь тут сталкивался с задачей проверки строки на соответсвие шаблона заданного Wildcard, на манер имен файлов (c:\dir\*\????la*.txt). То есть: * - любое количество символов, ? - один любой символ.
Первое, что мне пришло в голову - это жадный алгоритм решения.

Разделяем всю строку на группы между которыми стоят *. Ищем каждую группу, как можно ближе к началу строки.

Ситуации типа: *??*?*  - обрабатываем как одну *, но пропускаем 3 символа в строке.
При поиске последней группы требуем чтобы она находилась в конце строки.

Вот код: http://pastebin.com/ALQa7WmE

И вроде бы, я не могу найти контр-примера. Но в интернете везде лежит либо, некорректный жадный алгоритм, не обрабатывающий ситуации a*? или же динамика.  Может кто-нибудь привести контр-пример?

  • Vote: I like it
  • +1
  • Vote: I do not like it