Kelime Analitiği
Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 54 / 56.
Dizeleri, hash'leri, Hash.new(0) yapısını ve Enumerable metotlarını aynı anda kullanan bağımsız bir meydan okuma.
Görev
OrtaGirdi olarak tek bir satır, bir cümle okuyun. Bunu analiz edin ve üç satır yazdırın:
- Benzersiz kelimelerin sayısı (büyük/küçük harf duyarsız, noktalama işaretleri temizlenmiş). Tekrarlanan kelimeler birer kez sayılır.
- Birden fazla kez geçen tekrarlanan kelimeler, alfabetik olarak sıralanmış ve
,ile birleştirilmiş. Hiç yoksa,(none)yazdırın. - Palindrom kelimeler, yani ileri ve geri okunuşu aynı olan kelimeler, uzunluk ≥ 2, alfabetik olarak sıralanmış ve
,ile birleştirilmiş. Hiç yoksa,(none)yazdırın.
İşlemeden önce her kelimeden .,!?:;"() karakterlerini temizleyin. Karşılaştırma için her şeyi küçük harfe çevirin.
Madam saw a racecar. Dad said hello hello to mom. girdisi için çıktı şöyledir:
9
hello
dad, madam, mom, racecarKendin dene
input = gets.chomp
# YAPILACAKLAR: ayır, noktalama işaretlerini temizle, küçük harfe çevir, sonra şunları yazdır:
# benzersiz kelime sayısı, tekrarlanan kelimeler, palindromlar (uzunluk >= 2)
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Derinlemesine Stringler
String Metotlarına Genel BakışString InterpolationStringler Üzerinde GezinmeSplit ve JoinÖzet - String Weaver4Bloklar, Procs ve Lambdalar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar KelimesiBlok ParametreleriProcs ve LambdalarÖzet - Özel İteratör7Hashes Bölüm 2
Varsayılan Değerlerle Hash.newHash Yapıları Üzerinde Yinelemeİç İçe Hash YapılarıBirleştirme ve DönüştürmeÖzet - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Select ve RejectMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byÖzet - Data Pipeline8İleri Seviye Karar Yapıları
Sınıflar ve Regex ile CaseÇok Değerli whenTernary OperatörüSatır İçi if / unlessÖzet - Not Sınıflandırıcı