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.
Quảng cáo
1 câu trả lời 68
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 = i
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])
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
55535 -
Đã trả lời bởi chuyên gia
31466 -
30015
