Polat adlı üyeden alıntı: mesajı görüntüle
olur hocam gönder
gectim hocam odemeyi attiginiz iban a
Seyit25 adlı üyeden alıntı: mesajı görüntüle
norosezene = 017 burada seven v nerede?
tifowoxoursne =1246, bunun 1246 olduğu nereden anlaşılıyor 2146 niye değil?
Sıralama hep küçükten büyüğe olacaksa çok kolay ki.
Gelen stringi karakterlere böl, sonra tek tek sayılara karşılık gelen karakterler varsa sil ve bunu string bitene kadar hesapla.
harfleri karistirirken v yi silmisim sanirim.
rakamlarin yeri cok onemli degil, dogru rakamlar basildiktan sonra, onlari siralamak kolay zaten.
kelime ile ifade etmesi bence de cok kolay, koda dokene nacizane ufak bir odul gonderdim 👍🏽
ZEON adlı üyeden alıntı: mesajı görüntüle
Alternatif çözüm;
(Belirtilmemiş ama eğer gerekirse bir kaç değişiklikle sonuç bulunduktan bir sonraki aramayı önceki sonuçtan geriye kalan karakterler üzerinde yapabilirsiniz.)
$_charset = 'owoftnuoer';
$_arr = array( 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine');

$_findNumber = function ( string $chars, string $text ) use ( $_arr ): int|bool
{
    $match = null;
    foreach( str_split( $text ) as $char ) {
        if ( str_contains($chars, $char) ) {
            $chars = substr_replace( $chars, '', strpos( $chars, $char ), 1 );
            $match .= $char;
        }
    }
    return $match === $text ? array_search( $text, $_arr ) : false;
};

foreach ( $_arr as $text ) {
    echo $_findNumber( $_charset, $text );
}
hocam bu kodda 4 satir, yani int|bool kisminda hata veriyor, ben zaten boyle php fonksiyonu gormedim daha once, ya advanced bir kullanim ben bilmiyorum ya da baska bir dilldeki kullanim ile karistirdiniz galiba