Desen Bulucu
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 87 / 88.
Görev
KolayGirdiden bir dize okuyun ve tüm dizeyi oluşturan en küçük tekrar eden deseni bulun.
Geçerli bir desen şunları yapmalıdır:
- Dizenin toplam uzunluğunu tam olarak bölen bir uzunluğa sahip olmalıdır
- Uygun sayıda tekrarlandığında, orijinal dizeyi tam olarak yeniden oluşturmalıdır
Eğer dize tekrar eden bir desenden oluşuyorsa, o en küçük deseni yazdırın. Eğer tekrar eden bir desen yoksa, orijinal dizeyi yazdırın.
Bir desenin çalışıp çalışmadığını kontrol etmek için dize çarpımını kullanabilirsiniz: pattern * count, deseni tekrarlayarak yeni bir dize oluşturur.
Örneğin, girdi abcabcabc ise, çıktı şöyle olmalıdır:
abcGirdi xyxyxyxy ise, çıktı şöyle olmalıdır:
xyGirdi aaaa ise, çıktı şöyle olmalıdır:
aGirdi hello ise, çıktı şöyle olmalıdır:
helloGirdi abcdef ise, çıktı şöyle olmalıdır:
abcdefKendin dene
# Giriş dizesini oku
s = gets.chomp
# TODO: Kodunuzu aşağıya yazın
# Tüm dizeyi oluşturan en küçük tekrar eden deseni bulun
# İpucu: Dize uzunluğuna tam bölünen desen uzunluklarını kontrol edin
# Bir desenin çalışıp çalışmadığını doğrulamak için dize çarpımını (desen * sayı) kullanın
result = s # Bunu kendi çözümünüzle değiştirin
# Sonucu yazdır
puts resultTemeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect