Özet - Kelime Sayacı
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 34 / 66.
Görev
KolayGirdi olarak bir cümle alacaksınız. Cümledeki her bir kelimenin kaç kez geçtiğini sayın ve bu sayıları bir hash map içinde saklayın. Ardından, her bir benzersiz kelimeyi sayısıyla birlikte yazdırın.
Gereksinimler:
std::collectionsmodülündenHashMapyapısını içe aktarınHashMap<String, i32>türlerinde değiştirilebilir (mutable) bir hash map oluşturun- Girdi cümlesini tek bir satır olarak okuyun
- Cümleyi
.split_whitespace()kullanarak tekil kelimelere ayırın - Her kelime için, kelime mevcut değilse sayıyı
0olarak başlatmak için.or_insert(0)ile birlikte.entry()metodunu kullanın .or_insert(0)kullandıktan sonra, o kelime için sayıyı1artırın- Tüm kelimeleri işledikten sonra, hash map üzerinde döngü kurun ve her kelimeyi sayısıyla birlikte şu formatta yazdırın:
[word]: [count]
Girdi:
- Kelimelerin boşluklarla ayrıldığı bir cümle içeren tek bir satır (örneğin,
hello world hello rust world hello)
Çıktı:
- Her benzersiz kelime için şu formatta bir satır:
[word]: [count] - Çıktı satırlarının sırası test çalışmaları arasında farklılık gösterebilir
Kendin dene
use std::collections::HashMap;
use std::io;
fn main() {
// Giriş cümlesini oku
let mut sentence = String::new();
io::stdin().read_line(&mut sentence).expect("Failed to read line");
let sentence = sentence.trim();
// Kelime sayılarını saklamak için değiştirilebilir bir hash map oluştur
let mut word_count: HashMap<String, i32> = HashMap::new();
// TODO: Kodunuzu aşağıya yazın
// Cümleyi kelimelere ayırın ve her kelimeyi sayın
// Her kelimeyi sayısıyla birlikte yazdırın
}Logic & Flow bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
'match' İfadesiBirden Çok Değeri EşleştirmeAralıkları Eşleştirme'if let' İfadesiİfade Olarak DöngülerÖzet - Basit Komut Ayrıştırıcı4Struct'lar ile Verileri Gruplama
Struct Nedir?Struct'lara Genel BakışStruct Alanlarına ErişmeMutable Struct'larFonksiyon Parametresi Olarak Struct'larTuple Struct'larÖzet - Bir Kitap Struct'ı Oluşturun7'Result' ile Hata Yönetimi
'Result' Nedir?'Result' ile 'match' Kullanımıis_ok() ve is_err()Kısayollar: unwrap ve expectSoru İşareti Operatörü '?'String'leri Sayılara DönüştürmeÖzet - Güvenli Bölme Fonksiyonu10Closures ve Anonim Fonksiyonlar
Closure Nedir?Basit Bir Closure TanımlamaParametreli Closure'larOrtamı YakalamakÖzet - Basit Toplayıcı Closure2Vektörlere Giriş
Vektör Nedir?Vektör Oluşturmapush ile Eleman EklemeVektör Elemanlarına ErişmeVektör Üzerinde YinelemeDeğiştirilebilir YinelemeEleman KaldırmaÖzet - Temel Skor Takipçisi5Hash Map'ler ile Anahtar-Değer Çiftleri
Hash Map Nedir?Bir Hash Map OluşturmaAnahtar-Değer Çiftleri EklemeDeğerlere ErişmeBir Hash Map Üzerinde GezinmeBir Değeri GüncellemeBir Çifti KaldırmaÖzet - Kelime Sayacı11Son Meydan Okumalar
Özet - Benzersiz ÖğelerÖzet - Kullanıcı Profili DoğrulayıcıÖzet - Not Özetleyici3Komut Satırı Yapılacaklar Listesi
Proje KurulumuGörev EklemeTüm Görevleri GörüntülemeGörev SilmeFinal Kodu6'Option' ile Yokluğu Yönetme
'Option' Nedir?'Option' ile 'match' Kullanımıis_some() ve is_none()Bir 'Option' Değerini Açmak (Unwrapping)expect MetoduVarsayılan Değer Sağlama: unwrap_orÖzet - Bir Eleman Bulma9String Dilimleri ve Daha Fazlası
String ve &strString Dilimleri OluşturmaFonksiyon Parametresi Olarak DilimlerDiğer DilimlerÖzet - İlk Kelimeyi Bulma