Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблон для полиндрома 
:(
    Опции темы
skalex
Дата 7.4.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



smartov, отнюдь не считаю ущербным ... Да и вообще чушь - писать регулярное выражение для палиндрома, если того не требует задача в учебнике. smile
PM   Вверх
ZlojEzh
Дата 7.4.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 2
Всего: 15



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

но универсальный шаблон для палиндрома - задачка все же интересная
и к тому же полезная для изучения regexp'ов

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

PM MAIL ICQ   Вверх
skalex
Дата 7.4.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Цитата
но универсальный шаблон для палиндрома - задачка все же интересная


Я на регулярках уже собаку съел (разве что условия пока не особо использую) и не советую ломать голову по этому поводу ... smile
PM   Вверх
ZlojEzh
Дата 8.4.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 2
Всего: 15



Цитата(skalex @ 7.4.2006, 15:42 Найти цитируемый пост)
Я на регулярках уже собаку съел (разве что условия пока не особо использую) и не советую ломать голову по этому поводу ...  emo&:)endemo

Нерешаемая задача, что ли?

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

Код

  $tests = array(
    "ab",
    "abcde",
    "aa",
    "aba",
    "ababa",
    "abaaba",
    "abcba",
    "aaab",
    "abccbba",
    "aabaa",
    "ababababa",
    "aabbaa",
    "aabbbaa",
    "ckcbbbbbbckc",
    "aaabaaa",
    "aaabbaaa",
    "aaabbbaaa",
    "aaabbcbbaaa",
    "abcdefgfedcba",
    "abccbaabccba"
  );
  $re = "#  (\w)  ( (\w?) | (?R) )  \\1 (?(R)|$)  #Ax";

  foreach ($tests as $test) {
    print $test.((strlen($test)>=8)?"\t":"\t\t")." - ";
    if (preg_match($re,$test,$match)) {
      print "palindrom";
      if ($test==strrev($test)) {
        print "\t  ok";
      } else {
        print "\t  error";
      }
    } else {
      print "ne palindrom";
      if ($test==strrev($test)) {
        print "\t  error";
      } else {
        print "\t  ok";
      }
    }
    print "\n";
  }


Output:
Код

ab               - ne palindrom   ok
abcde            - ne palindrom   ok
aa               - palindrom      ok
aba              - palindrom      ok
ababa            - palindrom      ok
abaaba           - palindrom      ok
abcba            - palindrom      ok
aaab             - ne palindrom   ok
abccbba          - ne palindrom   ok
aabaa            - palindrom      ok
ababababa        - palindrom      ok
aabbaa           - palindrom      ok
aabbbaa          - palindrom      ok
ckcbbbbbbckc     - palindrom      ok
aaabaaa          - ne palindrom   error
aaabbaaa         - ne palindrom   error
aaabbbaaa        - ne palindrom   error
aaabbcbbaaa      - ne palindrom   error
abcdefgfedcba    - palindrom      ok
abccbaabccba     - ne palindrom   error

PM MAIL ICQ   Вверх
smartov
Дата 8.4.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



Наверное приятное занятие smile микроскопом гвозди забивать smile
PM MAIL   Вверх
ZlojEzh
Дата 8.4.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 2
Всего: 15



нефиг выгоняться ))
в регулярках таким способом можно очень хорошо разобраться

если получится с палиндромом - открою новую тему с извращенскими задачками не регекспы
уже несколько придумал:
- проверка корректности математической формулы
- разложение XML-документа в массив (вряд ли получится - рекурсия записывает новые совпадения поверх старых, а без рекурсии такой штуки не сделашь)
PM MAIL ICQ   Вверх
smartov
Дата 8.4.2006, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



ZlojEzh,
Цитата(ZlojEzh @ 8.4.2006, 10:10 Найти цитируемый пост)
с извращенскими задачками не регекспы

Поиск матерных слов в тексте включая все их полиморфические формы русского языка smile

Извини это конечно правильно разобраться. Регулярки сила.
Но применять инструмент следует по назначению.
Разве что у тебя много времени и мало опыта.... тогда да
PM MAIL   Вверх
AbellarLindsey
Дата 25.4.2006, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.4.2006
Где: Самара, Россия

Репутация: нет
Всего: нет



а если перечислить все буквы через или? не будет работать?
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.