Tin học Tìm kiếm kiếm nhị phân (Python)

Asiak

Học sinh mới
Thành viên
25 Tháng mười 2022
9
4
6
18
Thanh Hóa

MIT4893

Học sinh
Thành viên
8 Tháng mười một 2022
11
3
21
15
TP Hồ Chí Minh
Bài này, bạn cần chỉnh sửa thuật toán tìm kiếm nhị phân một chút. Mỗi khi tìm thấy số 0 thì ghi lại, khi kết thúc quá trình tìm kiếm, vị trí số 0 cuối cùng trrong dãy là vị trí cuối cùng được ghi nhận lại.
Với chương trình dưới, nếu không tồn tại số 0 trong dãy, kết quả của chương trình là 0, nếu có thì là số nguyên >= 1.
Code để tiện copy:

s = input()

low = 0
high = len(s) - 1
last = -1

while low <= high:
mid = (low + high) // 2
if s[mid] == '0':
last = mid
low = mid + 1
else:
high = mid - 1

print(last+1)

1669475646018.png
 

System32

Học sinh chăm học
Thành viên
25 Tháng chín 2018
343
348
76
Hà Nội
THPT Marie Curie
Nhập vào một ký tự chỉ bảo hồm hai ký tự 0 và 1. Biết rằng các số 0 đứng trước số 1. Hãy cho biết vị trí của số 0 cuối cùng trong dãy
VD :
Input: 000001111
Output: 5
AsiakMột cách khác :v
Python:
n = input()
print(len(n) - n[::-1].index('0'))
 
Top Bottom