Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 06:03 24.06.24 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | (покажи всички)
Тема Задачка за регулярен изразнови  
АвторПиprиш (Нерегистриран)
Публикувано07.03.04 16:13



Ето ви една леко гадна задачка - да се напише рег. израз, който определя, дали един низ се състои от четен брой 0 и четен брой 1.



Тема Re: Задачка за регулярен изразнови [re: Пиprиш]  
Авторu3pyT (Нерегистриран)
Публикувано07.03.04 18:44



ake mi kaje6 kakvo ima6 predvid s regulqren moje i da q napisha taq zada4a!



Тема Re: Задачка за регулярен изразнови [re: Пиprиш]  
Автор Labrett (трън)
Публикувано07.03.04 18:46



Тази задачка ми хареса :)
Ето ти я на python:

import re

str = '101001010100 ...'
pattern = r'(?:.*[^01].*)|0'

tup = re.subn(pattern, '', str)

if (tup[1] > 1) and (!(tup[1]%2)) and (!(len(tup[0]) % 2)):
-> отговаря
else:
-> не отговаря



Пояснявам какво прави - r'(?:.*[^01].*)|0' ще match-не целия стринг ако в него има други неща освен нули и единици, в противен случай ще match-ва нулите.
subn() замества всеки match в стринга със стринг, посочен като втори параметър, в случая - празен стринг. Връща tupple, в който първият член е получаващият се стринг (само единици, които можем да видим дали са четен брой), а вторият - броя замествания, които също проверяваме за четност. В случай, че в стринга е имало нещо друго освен нули и единици, резултатът е ('', 1) и проверката също fail-ва.


______________

Ако искаш изненада, защо просто не се влюбиш?

Редактирано от Labrett на 07.03.04 18:52.



Тема Re: Задачка за регулярен изразнови [re: Labrett]  
АвторПиprиш (Нерегистриран)
Публикувано07.03.04 20:07



Идеята е само с един регулярен израз без да броиш нули и единици :)



Тема Re: Задачка за регулярен изразнови [re: Пиprиш]  
Авторzulum (Нерегистриран)
Публикувано07.03.04 20:13



neshto ot roda na ((00)*|(11)*), veche go zabravih sintaksisa tochno kyv e..



Тема Re: Задачка за регулярен изразнови [re: zulum]  
Авторzulum (Нерегистриран)
Публикувано07.03.04 20:16



a ne e tva ne razbrah tochno tva koeto se iska



Тема Re: Задачка за регулярен изразнови [re: Пиprиш]  
Автор Mylord (())
Публикувано07.03.04 20:20



Смея да твърдя, че въпросът ти наистина беше хубав, но има и хора, които мислят :-)

От теоретичната информатика, която принципно трябва да знаем, е известно, че един съвсем обикновен автомат не може да брои. Трябва ни т.нар. Push-Down-Automat.

А по дефиницията за регулярен израз (regular expression) би трябвало този израз да се разпознава от един съвсем обикновен автомат.

Кратикият и точен отговор: регулярният израз, които търсиш можеш да си го намериш в празното множество.

PS: Можеш да зададеш въпроса с Push-Down-Аutomat - да видим дали ще има решение във форума.

PPS: Много съм бъбрив. Извинете ме.

When things are nice I never prefer one to the other.


Тема Re: Задачка за регулярен изразнови [re: Mylord]  
Авторzulum (Нерегистриран)
Публикувано07.03.04 21:06



Blagodaria za vylnuvashtoto teoritichno prosvetlenie, no vyobshte ne
se iska reg exp-a da broi, a prosto da razpoznava niakakvi izrazi dali
sa edi si kakvo...



Тема Re: Задачка за регулярен изразнови [re: Mylord]  
АвторПиprиш (Нерегистриран)
Публикувано07.03.04 22:30



Въпросът ми хрумна точно докато зяпах 'обикновен' краен автомат, който прави това нещо, и се узорих, докато го напиша като рег. израз...

Така че, помисли още



Тема Re: Задачка за регулярен израз [re: Пиprиш]  
Автор Labrett (трън)
Публикувано07.03.04 23:00



ами той е само един regexp и само веднъж го match-ваме
И само един if има отдолу ;)


______________

Ако искаш изненада, защо просто не се влюбиш?



Страници по тази тема: 1 | 2 | 3 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.