32.4. Cho trước dãy số. Yêu cầu cần tìm ra một dãy con liên tục có độ dài lớn nhất bao gồm các số bằng nhau. Ví dụ với dãy: 1, 1, 2, 3, 0, 0, 0, 7, 10, 10, 5, 1, 1, 6 thì cần đưa ra thông báo:
- Dãy con bằng nhau có độ dài lớn nhất là 0, 0, 0 bắt đầu từ chỉ số 4.
- Dãy số gốc gồm các số nguyên được nhập trên một dòng từ bàn phím, chương trình cần đưa ra thông báo như trên.
Bài Làm:
Chương trình có thể viết như sau:
A = [1, 1, 2, 3, 0, 0, 0, 7, 10, 10, 5, 1, 1, 6]
Indx = 0
lenMax = 1
for i in range(len(A)):
j = i
while j < len(A) and A[j] == A[i]:
if j-i+1 > lenMax:
Indx = 1
lenMax = j-i+1
j = j + 1
print("Dãy con bằng nhau lớn nhất bắt đầu từ chỉ số: ",Indx, "độ dài", lenMax)
print(A[ Indx: Indx+lenMax ])