v2.1.1
Giri┼č yap

PHP Battle #1

Burada anlataca─č─▒m t├╝m ├Ârnekler codewars.com adresinden al─▒nm─▒┼čt─▒r. Daha fazla PHP egzersizi i├žin ziyaret etmeyi unutmay─▒n!

├ľrnek 1 - XO

Bu ├Ârnekte XO() ad─▒nda bir fonksiyon yazaca─č─▒z ve parametre olarak belli ifadeler g├Ânderece─čiz. Ve a┼ča─č─▒daki ┼čartlara g├Âre true ya da false d├Ând├╝rece─čiz.

  • x ve o de─čerleri e┼čitse true d├Ând├╝rmelidir.
  • x ve o yoksa true d├Ând├╝rmelidir.
  • di─čer t├╝m durumlarda false d├Ând├╝rmelidir.
  • x ve o de─čerleri b├╝y├╝k/k├╝├ž├╝k harfe duyars─▒z olarak hesaplanmal─▒d─▒r.
function XO($s){
    // kodlar buraya gelecek
}

var_dump(XO('xooxx')); // false
var_dump(XO('ooxXm')); // true
var_dump(XO('zpzpzpp')); // true
var_dump(XO('zzoo')); // false
var_dump(XO('XOxoOxx')); // false
1. Varyasyon

En basit varyasyon, string ifadeyi ├Ânce strtolower() ile k├╝├ž├╝ltmek ve str_split() ile diziye aktarmak ve d├Âng├╝ye sokarak x ve o de─čerlerini sayd─▒r─▒p geriye mant─▒ksal i┼člem yapmakt─▒r.

function XO($s){
    $s = strtolower($s);
    $strings = str_split($s);
    $x = 0;
    $o = 0;
    foreach ($strings as $string){
        if ($string === 'x') $x++;
        if ($string === 'o') $o++;
    }
    return $x === $o;
}

var_dump(XO('xooxx'));
var_dump(XO('ooxXm'));
var_dump(XO('zpzpzpp'));
var_dump(XO('zzoo'));
var_dump(XO('XOxoOxx'));
2. Varyasyon

E─čer array fonksiyonlar─▒na hakimsek, array_count_values() ile dizide tekrarlanan de─čerlerin toplam─▒n─▒ bulup buna g├Âre mant─▒ksal i┼člem yapmakt─▒r.

function XO($s) {
	$s = array_count_values(str_split(strtolower($s)));
	return $s['o'] == $s['x'];
}

var_dump(XO('xooxx'));
var_dump(XO('ooxXm'));
var_dump(XO('zpzpzpp'));
var_dump(XO('zzoo'));
var_dump(XO('XOxoOxx'));
3. Varyasyon

En iyi ihtimalle bir RegEx deseni yazarak x ve o de─čerlerinin kontrol├╝n├╝ yapabiliriz.

function XO($s) {
    return preg_match_all('/[x]/i', $s) === preg_match_all('/[o]/i', $s);
}

var_dump(XO('xooxx'));
var_dump(XO('ooxXm'));
var_dump(XO('zpzpzpp'));
var_dump(XO('zzoo'));
var_dump(XO('XOxoOxx'));
4. Varyasyon

Dizi i├žinde array_count_values() ile tekrarlanan de─čerleri hesaplad─▒─č─▒m─▒z gibi substr_count() kullanarak dizi yerine ifade i├žerisinde x ve o de─čerlerinin toplam─▒na g├Âre mant─▒ksal i┼člem yapar─▒z.

function XO($s) {
    $lower = strtolower($s);
    return substr_count($lower, 'x') === substr_count($lower, 'o');
}
var_dump(XO('xooxx'));
var_dump(XO('ooxXm'));
var_dump(XO('zpzpzpp'));
var_dump(XO('zzoo'));
var_dump(XO('XOxoOxx'));

├ľrnek 2 - Say─▒lar─▒n Toplam─▒n─▒ Bulma

Bu ├Ârnekte fonksiyona verece─čimiz 1 2 3 4 n.. de─čeri ile say─▒n─▒n k├╝p├╝n├╝ bulmam─▒z gerekiyor. Buna g├Âre fonksiyonu ├žal─▒┼čt─▒rd─▒─č─▒m─▒zda a┼ča─č─▒ki gibi de─čerler d├Ânmeli.

rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
rowSumOddNumbers(3); // 7 + 9 + 11 = 27
rowSumOddNumbers(4); // 13 + 15 + 17 + 19 = 64
1. Varyasyon

Yap─▒lacak en basit i┼člem say─▒y─▒ kendisi ile 3 kere ├žarparak geriye d├Ând├╝rmektir.

function rowSumOddNumbers($n){
    return $n * $n * $n;
}

rowSumOddNumbers(1);
rowSumOddNumbers(2);
rowSumOddNumbers(3);
rowSumOddNumbers(4);
2. Varyasyon

E─čer matematik fonksiyonlar─▒na hakimsek pow() fonksiyonunu kullanarakta bu i┼člemi yapabiliriz.

function rowSumOddNumbers($n){
    return pow($n, 3);
}

rowSumOddNumbers(1);
rowSumOddNumbers(2);
rowSumOddNumbers(3);
rowSumOddNumbers(4);
3. Varyasyon

PHP'de g├╝nceli takip ediyorsak exponentiation yani ├╝s alma operat├Âr├╝ olan ** operat├Âr├╝n├╝ kullanarak bu i┼člemi yapar─▒z.

function rowSumOddNumbers($n){
    return $n ** 3;
}

rowSumOddNumbers(1);
rowSumOddNumbers(2);
rowSumOddNumbers(3);
rowSumOddNumbers(4);
Devam─▒n─▒ bug├╝n tamamlay─▒p makaleyi sonland─▒raca─č─▒m.
tayfunerbilen
29 g├╝n ├Ânce yazd─▒.
├ľnceki PHP ile 301 Y├Ânlendirme Nas─▒l Yap─▒l─▒r? Sonraki PHP ile QR Kod Olu┼čturma