Tin học Xuất hiện lần 3

Nguyễn Trần Phát

Học sinh mới
Thành viên
8 Tháng chín 2020
111
44
11
16
Nghệ An
THCS Đặng Thai Mai
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Yêu cầu: Cho dãy số gồm n số nguyên a1, a2, ..., an. Hãy in ra các phần tử có số lần xuất hiện bằng 3. Phần tử nào xuất hiện 3 lần trước thì in ra trước. Nếu phần tử nào đó xuất hiện nhiều lần hơn 3 thì cứ mỗi bội của 3 ta lại in ra giá trị của phần tử đó một lần; giả sử số 1 xuất hiện 9 lần thì ta sẽ in ra 3 số 1. Nếu không có phần tử nào thì in ra giá trị 0.
Dữ liệu:
- Dòng đầu tiên ghi số nguyên không âm n (n<=106).
- Dòng 2 ghi n số nguyên dương cách nhau một dấu cách trống, giá trị của mỗi phần tử không vượt quá 106.
Kết quả: Các phần tử có số lần xuất hiện bằng 3 theo thứ tự xuất hiện.
 

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
Yêu cầu: Cho dãy số gồm n số nguyên a1, a2, ..., an. Hãy in ra các phần tử có số lần xuất hiện bằng 3. Phần tử nào xuất hiện 3 lần trước thì in ra trước. Nếu phần tử nào đó xuất hiện nhiều lần hơn 3 thì cứ mỗi bội của 3 ta lại in ra giá trị của phần tử đó một lần; giả sử số 1 xuất hiện 9 lần thì ta sẽ in ra 3 số 1. Nếu không có phần tử nào thì in ra giá trị 0.
Dữ liệu:
- Dòng đầu tiên ghi số nguyên không âm n (n<=106).
- Dòng 2 ghi n số nguyên dương cách nhau một dấu cách trống, giá trị của mỗi phần tử không vượt quá 106.
Kết quả: Các phần tử có số lần xuất hiện bằng 3 theo thứ tự xuất hiện.
Python
Mã:
n = int(input())
integers = input().split()
if len(integers) != n:
    print(-1)
else:
    counter = []
    duplicate = []
    for integer in integers:
        counter += [integer]
        if counter.count(integer) == 3:
            duplicate += [integer]
            for i in range(3):
                counter.remove(integer)
    print(' '.join(duplicate) if duplicate != [] else -1)
 
Top Bottom