selamlar,
bi code challange da karsima cikti, zaten acemiyim ama yaparim demistim, olmadi, kafayi yedim.
Soru su:
mesela elimizde soyle bir string var : "owoftnuoer". burda ingilizce olarak , one, two, four harflerinin karisimi var, dolayisiyla output soyle olmasi lazim : 124
bizim oyle bir fonksiyon yazmamiz lazim ki gelen string ne kadar karisik ya da uzun olursa olsun, biz dogru sayilari return edelim. (gelen string i dogru harfler ve kombinasyon ile geldigini varsayacagiz)
biraz arastirdim, java ve phyton cevaplari var
surda ama bunu php ile nasil yapariz?
ilk calisan fonksiyonu paylasana 150tl gonderiyorum! kucuk miktar ama en azindan belki gaza getirir bizi

)
(verdigim linkteki kodu direk php cevirip yapmayalim, biraz degistirelim, bakalim neler cikacak?)
bazi ipuclari sunlar
$num = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] ;
burda
z harfi sadece 0 da ,
u harfi sadece 4 de,
g harfi sadece 8 de,
w harfi sadece 2 de,
x harfi sadece 6 da bulunuyor
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 );
}