🐍 PYTHON NÂNG CAO – BỘ 1
Bài 13: Danh sách (List) – Tìm mẫu liên tiếp 1,2,3 | THPT Phan Chu Trinh
Bài 13: Danh sách (List) – Tìm mẫu liên tiếp 1,2,3 | THPT Phan Chu Trinh
🎯 Bài toán (Nhiệm vụ 3)
Cho trước dãy số A. Viết chương trình tìm và chỉ ra vị trí đầu tiên trong A mà ba số hạng liên tiếp có giá trị là 1, 2, 3.
Nếu tìm thấy → thông báo vị trí. Nếu không → thông báo "Không tìm thấy mẫu".
Gợi ý: dùng vòng lặp
Cho trước dãy số A. Viết chương trình tìm và chỉ ra vị trí đầu tiên trong A mà ba số hạng liên tiếp có giá trị là 1, 2, 3.
Nếu tìm thấy → thông báo vị trí. Nếu không → thông báo "Không tìm thấy mẫu".
Gợi ý: dùng vòng lặp
while, kiểm tra 3 phần tử liên tiếp:
A[i], A[i+1], A[i+2].
📝 Soạn thảo Python
▶ Kết quả sẽ hiển thị ở đây...
# Lời giải gợi ý (Bài 13 - Nhiệm vụ 3)
A = [0, 4, 0, 1, 2, 3, 8, 9, 0, 1, 2, 3, 17, -16, 0, 1, 2]
p = [1, 2, 3]
pkq = -1
i = 0
while i < len(A) - 2 and pkq == -1:
if A[i] == p[0] and A[i+1] == p[1] and A[i+2] == p[2]:
pkq = i
else:
i += 1
if pkq >= 0:
print("Tim thay mau", p, "tai vi tri", pkq)
else:
print("Khong tim thay mau", p)
# Kết quả mong đợi (với dữ liệu trên):
# Tim thay mau [1, 2, 3] tai vi tri 3
🧾 Lịch sử chạy
⚠ Ghi nhớ nhanh:
• Duyệt i từ 0 đến len(A)-3 (vì cần xét 3 phần tử liên tiếp)
• Dừng sớm khi đã tìm thấy (pkq khác -1) để lấy vị trí đầu tiên
• Có thể mở rộng: tìm mẫu bất kỳ bằng cách duyệt và so sánh một đoạn con
• Duyệt i từ 0 đến len(A)-3 (vì cần xét 3 phần tử liên tiếp)
• Dừng sớm khi đã tìm thấy (pkq khác -1) để lấy vị trí đầu tiên
• Có thể mở rộng: tìm mẫu bất kỳ bằng cách duyệt và so sánh một đoạn con
📌 Danh sách bình luận