Bài 7: Lập trình giải bài toán tìm kiếm

Minh Lệ

Viết chương trình tìm kiếm vị trí tên của một người trong mỗi danh sách sau đây:

a) Danh sách học sinh của lớp em.

b) Danh sách tên của các chủ tài khoản ngân hàng (kí tự không dấu) và đã sắp thứ tự theo bảng chữ cái.

Phía sau một cô gái
22 tháng 7 2023 lúc 20:21

a) Danh sách học sinh của lớp:

 

def tim_vi_tri_ten_hs(ten, danh_sach_hs):

       for i, ten_hs in enumerate(danh_sach_hs):

              if ten_hs == ten:

                     return i

       return -1

danh_sach_hs = ["Nam", "An", "Binh", "Chung", "Duc", "Huong"]

ten_can_tim = "An"

vi_tri = tim_vi_tri_ten_hs(ten_can_tim, danh_sach_hs)

if vi_tri >= 0:

       print(f"Vi tri cua ten '{ten_can_tim}' trong danh sach la {vi_tri}")

else:

       print(f"Ten '{ten_can_tim}' khong nam trong danh sach")

 

b) Danh sách tên các chủ tài khoản ngân hàng đã sắp xếp theo thứ tự bảng chữ cái:

 

def tim_vi_tri_ten_tk(ten, danh_sach_tk):

       left, right = 0, len(danh_sach_tk) - 1

       while left <= right:

              mid = (left + right) // 2

              if danh_sach_tk[mid] == ten:

                     return mid

              elif danh_sach_tk[mid] < ten:

                     left = mid + 1

              else:

                     right = mid - 1

       return -1

danh_sach_tk = ["An", "Binh", "Duc", "Huong", "Nam"]

ten_can_tim = "Huong".upper()

vi_tri = tim_vi_tri_ten_tk(ten_can_tim, danh_sach_tk)

if vi_tri >= 0:

       print(f"Vi tri cua ten '{ten_can_tim}' trong danh sach la {vi_tri}")

else:

       print(f"Ten '{ten_can_tim}' khong nam trong danh sach")

Bình luận (0)

Các câu hỏi tương tự
Minh Lệ
Xem chi tiết
Minh Lệ
Xem chi tiết
Minh Lệ
Xem chi tiết
Minh Lệ
Xem chi tiết
Minh Lệ
Xem chi tiết
Minh Lệ
Xem chi tiết
Minh Lệ
Xem chi tiết