Meydan Okuma: Karakter Sıklığı
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 66 / 68.
Görev
KolayTek bir girdi alacaksınız: bir metin dizesi.
Girdi şu formatta bir dize olacaktır: hello world
Girdi dizesini okuyun. Boşluklar hariç, dizedeki her bir karakterin frekansını (büyük/küçük harf duyarsız olarak) sayın. Karakter frekanslarını, anahtarların karakterler ve değerlerin sayımlar olduğu bir ilişkisel dizide (associative array) saklayın.
İlişkisel diziyi ksort() kullanarak anahtara göre artan alfabetik sırada sıralayın.
Her bir karakteri ve frekansını aşağıdaki formatta yazdırın:
[character]: [count]
Her bir karakter-frekans çiftini alfabetik sırada, ayrı bir satıra yazdırın.
Girdi formatı:
- Bir metin dizesi içeren tek bir satır (örnek:
hello world)
Beklenen çıktı: Her bir karakter ve frekansı, karakterlere göre alfabetik olarak sıralanmış şekilde, her satırda bir tane olacak şekilde şu formatta yazdırılır: [character]: [count]
Kendin dene
<?php
// Girdiyi oku
$text = trim(fgets(STDIN));
// TODO: Kodunuzu aşağıya yazın
// 1. Dizeyi küçük harfe dönüştürün
// 2. Karakter frekanslarını sayın (boşluklar hariç)
// 3. Diziyi ksort() kullanarak anahtara göre sıralayın
// 4. Her karakteri ve frekansını yazdırın
?>Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi7Tarih ve Saatlerle Çalışmak
'date()' Fonksiyonu'time()' ile Unix Zaman DamgalarıDateTime Nesnesine GirişDateTime Nesnelerini BiçimlendirmeDateTime Nesnelerini DeğiştirmeÖzet: Tarih Hesaplamaları10Final Meydan Okumaları
Meydan Okuma: Palindrom KontrolüMeydan Okuma: Karakter SıklığıMeydan Okuma: Alışveriş Sepeti ToplamıMeydan Okuma: Benzersiz Öge Filtresi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama