Kelime Analizi
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
1Dizeler Detaylı İnceleme
Dize Metotlarına Genel BakışDize EnterpolasyonuDizeler Üzerinde YinelemeBölme ve BirleştirmeTekrar - Dize Dokuyucu4Bloklar, Proc'lar ve Lambda'lar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar SözcüğüBlok ParametreleriProc'lar ve Lambda'larÖzet - Özel Yineleyici7Hash'ler 2. Bölüm
Varsayılanlarla Hash.newHash'ler Üzerinde Yinelemeİç İçe Hash'lerBirleştirme ve DönüştürmeTekrar - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Seçme ve ReddetmeMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byTekrar - Veri HattıKendi başına pratik yap: Online Ruby derleyicisi