Блог пользователя nerd

Автор nerd, 10 лет назад, По-русски

Всем привет!

Нужны ли регулярные выражения в спортивном программировании? Если да, есть ли хороший материал по регулярным выражениям?

Спасибо!

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
10 лет назад, # |
Rev. 5   Проголосовать: нравится 0 Проголосовать: не нравится

Регулярные выражения актуальны когда нужна изощрённая, но не головоломная обработка строки. Большинство же спортивных задач обычно наоборот ценят головоломность и изюминку нежели унылое количество нелепых кейсов.

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

Поэтому не думаю что вы часто встретите случай ими воспользоваться.

Тем не менее я встречал их использование просматривая чужие решения — во вспомогательных целях, при вводе/выводе скажем. Например больше всего мне запомнился, когда я сам только делал первые шаги с джавой, такой вывод массива в строку:

int[] array = ... ; // массив результирующих данных в общем

System.out.println(Arrays.toString(array).replaceAll("[\[\]\,]", ""));

Не ручаюсь что правильно воспроизвёл по памяти, но суть вы уловили. Впрочем в python или javascript вы вместо этого join используете — его просто нет в джаве.

UPD: ooops, I just found that String#join is available since Java 8.

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

No, you don't need to know them. If a problem is based on regular expressions, they'd have to be described in it in full detail.

You might only need them if you're doing IPSC.

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

http://perldoc.perl.org/perlretut.html — it's short enough comparing with books. After reading this you will know where and how regexp will be useful. Anyway every programmer certainly should be familiar with regexps.

»
10 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Not necessarily but it can still be helpful. Once in a while there comes a problem that becomes a lot less tricky using regular expressions. Knowing it may not be required in order to solve a problem but it can make the solution less complicated.