C6-05 · Mọi vị trí xuất hiện
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:
Dạng bài
Ngôn ngữ cho phép
Python
Đề
Viết hàm tim_tat_ca(ds, x) trả về danh sách các chỉ số mà tại đó ds có giá trị x (danh sách rỗng nếu không có), không dùng index().
Chương trình đọc dãy và số ~x~ như bài C6-03, rồi in mọi vị trí của ~x~ (đánh số từ 1) theo thứ tự tăng dần trên một dòng; nếu ~x~ không có trong dãy thì in -1.
Dữ liệu vào
- Dòng 1: số nguyên ~n~.
- Dòng 2: ~n~ số nguyên ~a_1, \ldots, a_n~, cách nhau một dấu cách.
- Dòng 3: số nguyên ~x~.
Kết quả
Một dòng: các vị trí ~i~ (đánh số từ 1) mà ~a_i = x~, tăng dần, cách nhau một dấu cách; hoặc -1 nếu không có vị trí nào.
Ràng buộc
- ~1 \le n \le 100~.
- ~-10^9 \le a_i, x \le 10^9~.
Ví dụ
Dữ liệu vào:
5
3 7 3 1 3
3
Kết quả:
1 3 5
Giải thích ví dụ
tim_tat_ca([3, 7, 3, 1, 3], 3) trả về [0, 2, 4] (chỉ số Python). Cộng 1 cho mỗi chỉ số được vị trí 1 3 5.
Lưu ý
ds.index(x)luôn trả về lần xuất hiện đầu tiên — gọi nhiều lần không ra các vị trí sau; đó là lý do đề cấmindex().- Duyệt theo chỉ số
for i in range(len(ds))hoặcenumerate; đừng viếtfor i in ds:rồi dùngds[i](nhầm giá trị với chỉ số). - Không có ~x~ thì phải in
-1, không in dòng rỗng. - Nếu đọc dãy dưới dạng chuỗi thì so bằng
==, không dùngingiữa hai chuỗi:'3' in '13'làTrue(tìm chuỗi con), nên ~3~ sẽ bị coi là "có mặt" ở số ~13~. - Hệ thống chỉ chấm kết quả; việc viết hàm
tim_tat_cavà không dùngindex()do giảng viên xem khi chấm tay.
Nguồn trong sách: Bài C6-05, mục 6.12, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)
Đang tải...