Desen Bulucu
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 77 / 78.
Görev
Kolaytext ve pattern olmak üzere iki argüman alan count_pattern adında bir fonksiyon oluşturun. Fonksiyon, desenin metin içinde kaç kez geçtiğini, çakışan (overlapping) durumlar dahil olmak üzere döndürmelidir.
İki satırlık bir girdi alacaksınız:
- İçinde arama yapılacak metin dizesi (text)
- Aranacak desen dizesi (pattern)
Fonksiyonunuzu sağlanan girdilerle çağırın ve sonucu yazdırın.
İpuçları:
- Dizelerin uzunluğunu almak için
nchar()kullanın - Alt dizeleri (substrings) çıkarmak için
substr(text, start, stop)kullanın - Her bir geçerli başlangıç pozisyonu üzerinden döngü kurun ve alt dizenin desenle eşleşip eşleşmediğini kontrol edin
Örneğin, girdi şu şekildeyse:
ababa
abaÇıktı şu olmalıdır:
2Açıklama: "aba" deseni 1. pozisyonda (ababa) ve 3. pozisyonda (ababa) görünür, bu nedenle sayı 2'dir.
Eğer girdi şu şekildeyse:
mississippi
issiÇıktı şu olmalıdır:
2Kendin dene
# Girdiyi oku
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)
# YAPILACAK: text ve pattern parametrelerini alan count_pattern adında bir fonksiyon oluşturun
# ve metin içindeki desenin çakışan oluşumlarının sayısını döndürün
# Fonksiyonu çağırın ve sonucu yazdırın
print(count_pattern(text, pattern))Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre Değerleri