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

Câu 32.4 trang 66 SBT Tin học 10Cho 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.

Trả lời

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])

Sách bài tập Tin học 10 Bài 32 (Kết nối tri thức): Ôn tập lập tình Python (ảnh 1)

Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:

Bài 29: Nhận biết lỗi chương trình

Bài 30: Kiểm thử và gỡ lỗi chương trình

Bài 31: Thực hành: Viết chương trình đơn giản

Bài 32: Ôn tập lập trình Python

Bài 33: Nghề thiết kế đồ họa máy tính

Bài 34: Nghề phát triển phần mềm

Câu hỏi cùng chủ đề

Xem tất cả