(fragment slownika)
Kod
abadański
abaddon
abaka
abakanka
abakanowicz
abakanabakan
abakańczyk
abakański
abak
abakus
abalietas
abandon
abat
abatysa
abazja
abażurek
abażur
abażuru
abba
abba
abba
abbandonasi
abbandonatamente
abbasyda
abbeville
abbozzo
abc
abchaski
abchazi
abaddon
abaka
abakanka
abakanowicz
abakanabakan
abakańczyk
abakański
abak
abakus
abalietas
abandon
abat
abatysa
abazja
abażurek
abażur
abażuru
abba
abba
abba
abbandonasi
abbandonatamente
abbasyda
abbeville
abbozzo
abc
abchaski
abchazi
np.
podane litery to: 'abcdef' zadaniem skryptu jest ulozenie wyrazu ze slownika rozw. 'abc' (nie tylko)
udalo mi sie dojść do czegoś takiego że skrypt pobieda pojedynczo wiersze z pliku slownik.txt
wymyslilem potem cos takiego zeby slowo ze slownika wpisac do tablicy str_split();
z kolei pojedynczo sprawdzać czy pierwsza litera wyrazu znajduje sie w podanych literach ( to te np. abcdef)
przy uzyciu strstr(); jesli sie okaze ze wszystkie litery ze slowa ( tego ze slownika) znajdują się w podanych literach to oznacza że da sie z tego ulozyć taki wyraz. ta czynnos jest powtarzana az do końca slownika.
ALE nie przewidzialem jednego że wyraz ze słownika moze zawierać kilka tych samych liter co w efekcie daje cos takiego.... z dostepych liter 'abcdef' skrypt ulozy np. abba ale wiadomo ze niema 2x A i 2x B w dostepnych literach.
wszystkie wyrazy ulozone przez skrypt sa w tablicy zapisane ale co z tego jak czesc jest nie poprawna ( nie do ulozenia z podanych liter)
pokaze Co mi sie udalo zrobic.
(prosty formularz do podania liter)
index.html
teraz skrypt
1.php
<?php $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; $stog=$_POST['literki']; //pobranie liter $ile_ulozonych=0; while(! feof($open)) //petla odczytuje wyrazy ze slownika az do konca slownika i porownuje slowo z dostepnymi literami { $i=0; $litery_slowa= str_split($igla); $ile_liter=strlen($igla)-1; // tutaj jest -1 bo jest o 1 znak za duzo przy kazdym slowie na koncu chyba spacja jest dodana
i usuwam ja { $i++; } if($i==$ile_liter && $i>1) //petla zapisuje do tablicy ulozony wyrazy { $ulozony_wyraz[$ile_ulozonych]=$igla; $ile_ulozonych++; } } $ile_ulozonych--; //tutaj odejme jeden wyraz bo sie dodal wczesniej za duzo o 1 $i=$ile_ulozonych; $ulozony_wyraz=array_merge(array_flip(array_flip($ulozony_wyraz))); // a tutaj robie taki trik niektóre wyrazy sie powtarzaja w slowniku wiec beda sie
powtarzaly ulozony wyrazy tutaj usuwaja sie powtarzajace for($k=0; $k<$ile_ulozonych; $k++) { echo "<tr><td>" . $k . "</td><td>". $ulozony_wyraz[$k] . "</td></tr>"; // no i wypisuje ale oczywiscie jest za duzo tych wyrazow bo ulozylo sie za duzo ,
nie uwzglednilem wyzej opisanego bledu } ?>
macie jakies pomysly jak zrobic zeby bylo dobrze??
moze sa jakies lepsze algorytmy do takich rzeczy?? a moze jakies funkcje przydatne?
podajcie swoje pomysly.
Pozdrawiam i dziekuje z góry.