![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 0 Dołączył: 5.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
prosze nie pytajcie dlaczego nie korzystam ze strstr(), nie ja to wymyslalem
![]() Mam napisac program ktory szuka jednej frazy ($search) w innej frazie ($belt). Ma szukac w nastepujacy sposob: przechodzi po znakach z $belt, jezeli dany znak z $belt pokrywa sie ze pierwszym z $search to przechodzi ze stanu 0 w stan 1 i sprawdza kolejny. Jezeli sie zgadza to przechodzi w stan 2 itd. Logicznym jest ze jezeli nr stanu jest rowny dlugosci $search to napis zostal znaleziony. Jest jeszcze znak * wystepujacy w $search ktory zastepuje kazdy inny, czyli w jego wypadku automatycznie przechodzimy w stan wyższy. Mam jednak powien problem bo moj program dziala nie dla wszystkich przypadków. Oto kod:
teraz pięknie znajdzie 'm*' jako 'ma' na samym dole wygeneruje tablice przejsc, ale nas to nie obchodzi. Niestety nie działa to dla przypadku np. $belt = 'alaalaalaalab'; i $search = 'alab'; dlaczego? jak to poprawić? sa jakies inne dla ktorych nie zadziała? prosze o pomoc |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Darti 14.11.2007, 03:15:13 -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
macie koledzy skłonność do komplikowania prostych rzeczy...
Powodzenia na zaliczeniu... Ten post edytował nevt 14.11.2007, 10:36:07 -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#4
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Twoja procedura nie dziala
Nie znaleziono ![]() Tu jest poprawny kod.
Ten post edytował heaven 14.11.2007, 09:07:42 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
nadal komplikujecie sobie życie... faktycznie przeoczyłem ten przypadek, ale do korekty wystarczy dodać 1 podstawienie a nie dodatkową pętlę... poprawka naniesiona w poprzednim poście. bawcie się dobrze.
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#6
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
No zwal jak zwal...
Moj i Twoj kod przechodzi taka sama ilosc razy po stringach (jednak twoj robi w niektorych przypadkach wiecej niepotrzebnych przejsc) wiec nie nazwalbym tego komplikowaniem tym bardziej ze moj kod jest bardziej intuicyjny No ale racja jest jak ... kazdy ma swoja Ten post edytował heaven 14.11.2007, 12:30:20 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 0 Dołączył: 5.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
da sie jeszcze ten kod jakkolwiek (doslownie jakkolwiek ) zoptymalizowac?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
oczywiście, używając strstr().....
![]() ![]() ![]() -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
da sie jeszcze ten kod jakkolwiek (doslownie jakkolwiek ) zoptymalizowac? Google i zapytanie "algorytmy wyszukiwania podciągów" będzie pomocne - tutaj masz jeden z ciekawych wyników: http://pl.wikipedia.org/wiki/Kategoria:Algorytmy_tekstowe Ten post edytował SirZooro 21.11.2007, 07:40:20 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:05 |