Menu
CoddyTech

Tìm mẫu

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

challenge icon

Thử thách

Dễ

Đọc một chuỗi từ đầu vào và tìm mẫu lặp nhỏ nhất tạo thành toàn bộ chuỗi.

Một mẫu hợp lệ phải:

  • Có độ dài chia hết cho tổng độ dài của chuỗi
  • Khi lặp lại số lần thích hợp, tạo lại chính xác chuỗi ban đầu

Nếu chuỗi được tạo thành từ một mẫu lặp, hãy in mẫu nhỏ nhất đó. Nếu không có mẫu lặp, hãy in chuỗi ban đầu.

Để kiểm tra một mẫu có phù hợp hay không, bạn có thể dùng phép nhân chuỗi: pattern * count tạo một chuỗi mới bằng cách lặp lại mẫu.

Ví dụ: nếu đầu vào là abcabcabc, đầu ra sẽ là:

abc

Nếu đầu vào là xyxyxyxy, đầu ra sẽ là:

xy

Nếu đầu vào là aaaa, đầu ra sẽ là:

a

Nếu đầu vào là hello, đầu ra sẽ là:

hello

Nếu đầu vào là abcdef, đầu ra sẽ là:

abcdef

Tự làm thử

# Đọc chuỗi đầu vào
s = gets.chomp

# TODO: Viết code của bạn bên dưới
# Tìm mẫu lặp ngắn nhất tạo thành toàn bộ chuỗi
# Gợi ý: Kiểm tra các độ dài mẫu chia hết độ dài chuỗi
# Dùng phép nhân chuỗi (pattern * count) để kiểm tra mẫu có phù hợp không

result = s  # Thay phần này bằng lời giải của bạn

# In ra kết quả
puts result

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 Ruby online