Menu
Coddy logo textTech

Desen Bulucu

Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 77 / 78.

challenge icon

Görev

Kolay

text 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:

  1. İçinde arama yapılacak metin dizesi (text)
  2. 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:

2

Açı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:

2

Kendin 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