C8-01 · Tra tỉnh theo biển số

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Hai ký tự đầu của biển số xe là mã tỉnh. Chương trình giữ sẵn một bảng mã dưới dạng từ điển (dict) viết ngay trong chương trình:

Mã tỉnh Tên tỉnh in ra
29 Ha Noi
15 Hai Phong
43 Da Nang
65 Can Tho

Cho n biển số, với mỗi biển số hãy in tên tỉnh ứng với hai ký tự đầu của nó; nếu mã đó không có trong bảng thì in KHONG RO.

Chỉ dùng đúng bảng bốn mã ở trên: mã tỉnh có thật ngoài đời nhưng không có trong bảng (ví dụ 30, 51) vẫn in KHONG RO.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • n dòng tiếp theo, mỗi dòng một biển số, gồm: 2 chữ số (mã tỉnh), seri 1–2 ký tự (ký tự đầu là chữ cái in hoa, ký tự thứ hai nếu có là chữ cái in hoa hoặc chữ số), dấu -, rồi phần số dạng 123.45 hoặc 1234. Ví dụ: 43A-123.45, 29LD-678.90, 65B1-1234.

Kết quả

n dòng, dòng thứ i là tên tỉnh của biển số thứ i (viết đúng như bảng trên) hoặc KHONG RO.

Ràng buộc

  • ~1 \le n \le 10^4~.
  • Mã tỉnh là hai chữ số bất kỳ từ 00 đến 99.

Ví dụ

Dữ liệu vào:

2
43A-123.45
99B-111.22

Kết quả:

Da Nang
KHONG RO

Giải thích ví dụ

  • 43A-123.45: hai ký tự đầu là "43", có trong bảng, in Da Nang.
  • 99B-111.22: mã "99" không có trong bảng nên in KHONG RO. Viết bang_ma["99"] sẽ báo KeyError (Runtime Error); phải hỏi trước bằng in hoặc dùng bang_ma.get(ma, "KHONG RO") (mục 8.1.1).

Lưu ý

  • Mã tỉnh là hai ký tự đầu (bien_so[:2]), không phải "một chuỗi con nằm đâu đó trong biển số": biển 99B-129.43 có chứa 29 và 43 ở phần số nhưng vẫn là KHONG RO.
  • Seri có thể dài 2 ký tự (29LD-678.90), nên đừng lấy mã bằng cách bỏ "một chữ cái cuối" của phần trước dấu -.

Nguồn: Bài C8-01, mục 8.9, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long.

Nguồn trong sách: bài tập C8-01 (mục 8.9) · Mức: (*)


Đang tải...