Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie czy kolejność cyfr jest poprawna
Forum PHP.pl > Forum > PHP
rolling_stone
No to teraz mam chyba trudniejszy problem winksmiley.jpg

Otóż mam na przykład trzycyfrową sekwencję wyjściową: 272 i muszę teraz sprawdzić czy jakaś inna sekwencja (wykorzystująca tylko cyfry z sekwencji wejściowej), np. 2277 zachowuje kolejność cyfr sekwencji wyjściowej (272).

I tak na przykład 2277, 2222, 7777 czy 7222 zachowują tę kolejność, ale 2727 już nie, tak samo jak 7277.

Bardzo byłbym wdzięczny, gdyby ktoś mógł mi podpowiedzieć co z tym zrobić. I od razu może powiem, że sekwencja wyjściowa może mieć do 10 000 cyfr, natomiast sekwencje, które muszą zostać sprawdzone, muszą mieć tylko 4 cyfry.

Zastanawiałem się czy nie użyc funkcji ereg i jako wzorca w tym konkretnym przypadku
  1. <?php
  2. $wzorzec = &#092;"([2]{*})([7]{*})([2]{*})\";
  3. ?>
, ale takie rozwiązanie raczej nie działa


Pozdrawiam i z góry dziękuję!
dr_bonzo
Moze tak:
przegladasz po kolei wzorzec wyjsciowy az natrafisz na pierwsza cyfre z sekw. wejsciowej. Jesli nie znalazles to sekwencja jest odrzucana. Jesli znalazles to przechodzisz do kolejnej cyfry sekwencji i sprawdzasz czy w ciagu wyjscoowym znajduje sie kolejna cyfra (pamietaj zeby sprawdzic tezz najpierw ta pozycje dla ktorej zaakceptowales poprzednia cyfre sekwencji) itd. az do odnalezienia wszystkich cyfr sekwencji lub jej odrzucenia.


sekwencja: 2277
c. wyjsciowy:272
Kod
2277
^
272
^

2 - OK

2277
^
272
^
2 - OK

2277
  ^
272
^
2277
  ^
272
^
7 - OK

2277
   ^
272
^

7 - OK
-------------
a teraz:
2727
^
272
^
2 - OK

2727
^
272
^

2727
^
272
^
7 - OK

2727
  ^
272
^

2727
  ^
272
  ^
2 - OK

2727
   ^
272
   ^

2727
   ^ nie zaakceptowano wszystkich znakow
272
   ^ -- koniec ciagu wyjsciowego
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.