Menu
CoddyTech

Tìm mẫu

Thuộc phần Kiến thức nền tảng trong hành trình R của Coddy. Bài học 77 trên 78.

challenge icon

Thử thách

Dễ

Tạo một hàm (function) có tên count_pattern, nhận hai đối số: text và pattern. Hàm sẽ trả về số lần pattern xuất hiện trong văn bản, bao gồm cả những lần xuất hiện chồng lấp.

Bạn sẽ nhận được hai dòng đầu vào:

  1. Chuỗi văn bản cần tìm kiếm
  2. Chuỗi pattern cần tìm

Gọi hàm của bạn với các đầu vào được cung cấp và in ra kết quả.

Gợi ý:

  • Dùng nchar() để lấy độ dài của chuỗi
  • Dùng substr(text, start, stop) để trích xuất chuỗi con
  • Duyệt qua từng vị trí bắt đầu hợp lệ và kiểm tra xem chuỗi con có khớp với pattern không

Ví dụ, nếu đầu vào là:

ababa
aba

Đầu ra sẽ là:

2

Giải thích: Pattern "aba" xuất hiện ở vị trí 1 (ababa) và vị trí 3 (ababa), nên số lần xuất hiện là 2.

Nếu đầu vào là:

mississippi
issi

Đầu ra sẽ là:

2

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Tạo hàm (function) tên là count_pattern, nhận text và pattern
# và trả về số lần pattern xuất hiện chồng lấn trong text


# Gọi hàm và in ra kết quả
print(count_pattern(text, pattern))

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch R online