Cho trước dãy số bất kì A. Em hãy viết chương trình tìm và chỉ ra vị trí đầu tiên của dãy
Giải thích
Để kiểm tra tại một chỉ số i, 3 phần tử liên tiếp nhau bằng 1, 2, 3 có nhiều cách kiểm tra khác nhau, ví dụ:
Cách 1. Sử dụng biểu thức lôgic.
A[i] == 1 and A[i] == 2 and A[i] == 3
Cách 2. Sử dụng so sánh có chứa vùng chỉ số.
A[i:i+3] == [1,2,3]
Chương trình có thể viết như sau:
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) - 3 and pkq == -1:
if A[i: i+3] == p:
pkq = i
else:
i = i + 1
if pkq >= 0 :
print("Tìm thấy mẫu",p,"tại vị trí", pkq)
else:
print("Không tìm thấy mẫu",p)