Bài tập tìm kiếm và sắp xếp (ÔN TẬP THÊM)
W7A16
Cho một mảng số nguyên không âm. Gọi
mảng đó là "mảng đẹp" nếu mỗi phần tử
x trong mảng xuất hiện đúng x lần.
Kiểm tra xem mảng có phải là mảng đẹp
hay không. Nếu không hãy xóa đi y số (y
là nhỏ nhất có thể) để mảng còn lại thà
nh
m
ng đ
p.
1 2 2 3 3 3
0 0 0 1 2 2 2 3 3 3 3 4 4 4
3 3 3 4 4 4 4 4 4 5 1 1
1 2 3 4 5 6 7
2 2 3 3 3
YES
NO 8 (giải thích: xóa đi 3 số 0, 1 số
2, 1 số 3, 3 số 4)
NO 4
NO 6
W7A17
Tìm phần tử xuất hiện nhiều hơn n/2 lần
trong mảng (nếu có) với độ phức tạp thời
gian là O(n), độ phức tạp bộ nhớ là O(1),
- Boyer–Moore. Nếu không có phần tử
n
à
o
th
a m
ã
n th
ì
không in g
ì
1 2 2 3 2 2
1 1 1 3 3 3
1 2 4 2 1 1 1
2 2 2 6 6 6 6
1 8 8 8 9 9
2
1
6
W7A18
Sắp xếp có điều kiện: Số chẵn đứng
trước, số lẻ đứng sau, chẵn tăng dần, lẻ
gi
m d
n
1 2 3 4 5 6
32 4 15 123 24 12 8 10 9
3 4
2 6 7 8 9 10 5 7 2
2 4 6 5 3 1
4 8 10 12 24 32 123 15 9
2 2 4 6 8 10 9 7 7 5 3
W7A19
Merge 2 mảng đã sắp xếp (có thể tăng
dần, có thể giảm dần) mà không dùng
bất cứ thuật toán sắp xếp nào thành một
mảng cũng có cùng thứ tự sắp xếp như
2
m
ng
ban
đ
u
1 2 3 4 5
0 23 24 100 1000
1 2 3 4 5 100 200 300
4 5 6 7 8 9 10
9 8 7 6 5 1 0
6 5 4 3 2 1
0 1 2 3 4 5 23 24 100 1000
1 2 3 4 4 5 5 6 7 8 9 10 100 200
300
9 8 7 6 6 5 5 4 3 2 1 1 0
W7A20
Cho dãy N số nguyên dương, tính tổng
các số có k chữ số. Dòng đầu ghi N số
nguyên dương, dòng sau ghi số nguyên
dương k
12 3 123 34 5 6 7
2
23 4 5 123 456 4 2343 4545
3
46
579
W7A21
Cho N là ngày, T là tháng năm 2020,
Tính xem đó là ngày thứ bao nhiêu của
năm đ
ó
n
ế
u đ
ó
l
à
ng
y h
p l
2 1
31 1
4 5
12 13
23 8
2
31
125
invalid
236
W7A22
Cho N tên sinh viên gồm cả họ và tên,
tìm xem tên nào hay gặp nhất. Nếu
nhiều tên cùng số lần gặp thì lấy tên có
th
t
t
đi
n nh
nh
t
4
Bùi Bài Bình
Nguyễn Tất Bình
Nguyễn Mạnh Cường
Nguyễn Mạnh Trường
2
Nguyễn Thị Như Hoa
Ph
ù
ng Huy Dat
Bình
Dat
W7A23
Đếm số lượng tên trong xâu kí tự. Tên
được định nghĩa là xâu có độ dài >=2 và
có chữ cái đầu viết hoa, các chữ cái khá
c
vi
ế
t thư
ng, ch
c
ó
k
í
t
c
á
i.
ban ay ten Linh, ban di canh ten Hieu,
voi may nguoi ban moi ten khong biet
ten gi.
Nga la co gai xinh nhat, nhung Hien
moi sac sao và nhanh nhen nhat, Yen
lai diu dang,
Ngan thi it noi qua.
2
4
W7A24
Cho xâu kí tự, xóa các từ giống nhau liền
k
, ch
gi
l
i t
đ
u tiên
Toi di di hoc, rat vui khi di hoc hoc voi
voi cac ban.
Toi di hoc, rat vui khi di hoc voi cac
ban.
W7A25
Tìm số có đúng k chữ số lớn nhất có thể
trong một số có n chữ số (coi đầu vào là
một số rất lớn - str). Không được hoán
đ
i v
tr
í
c
á
c ch
s
454878434354
5
78788724367643978676767
10
5454874898789999878
8
88454
8978676767
99999878
W7A26
Tách các số có trong một đoạn văn bản,
t
í
nh t
ng v
à
t
í
nh trung b
ì
nh c
á
c s
đ
ó
.
123toidihoc234daihoc123congnghe
23fds34fsdj78sfdsj12
480 160
147 36.75
12rere90dsfdsf0sere234
1fsdfs323fdere65
14jhagd34hjfshj90
336 84
395 131.67
138 46
W7A27
Cho một dãy ngoặc ()(){}{}[][]..., kiểm tra
xem dãy ngoặc đã cho có hợp lệ hay
không
({}{}){}{}[[]]{}
({}{}{}{}[[]]{})
({}{}{}{}[[]]{)}
{({}{}{}{}[[]]{})
{}{}()<>[[]]]
YES
YES
NO
NO
NO
W7A28
Ba
i toán Tìm dãy các hợp số dài nhấ
t liên
tiếp không chứa số nguyên nào <= N (N
là số nguyên dương cho trước). Nếu có
nhiều dãy cùng độ dài thì lấy dãy nhỏ
nh
t (g
p đ
u tiên t
tr
á
i qua)
10
20
5
100
50
8, 9
8, 9, 10
4
91, 92, 93, 94, 95, 96
24, 25, 26, 27, 28
W
7A29
Tìm Dãy con tăng dần liên tục dài nhất
của một danh sách nhập vào từ bàn
phím. Lấy dãy đầu tiên nếu có nhiều dãy
c
ó
s
ph
n t
b
ng nhau
1 2 3 4 5 6 1 2 3 4 9 10 12
4 3 2 6 7 1 8 9 10 0 5 8 9
5 4 3 2 1
1 2 3 4 9 10 12
1 8 9 10
5
W7A30
Tìm Dãy con tăng dần KHÔNG liên tục
dài nhất của một danh sách nhập vào t
b
à
n ph
í
m
1 2 3 4 5 6 4 6 7 9 10 12
4 3 2 6 7 1 8 9 10 0 5 8 9
5 4 3 2 1
1 2 3 4 5 6 6 7 9 10 12
2 6 7 8 9 10
5
W7A31
Đổi chỗ đúng 2 chữ số để được số nhỏ
nh
t c
ó
th
123456
10212278
1000000000002343454000001213
435555555555555589878734343322
222213232
1232329899999999991219999999
123465
1212278
2343454000011213
1355555555555511111155898787
34343322222243232
1132329899999999991111122999
9999

Preview text:

Bài tập tìm kiếm và sắp xếp (ÔN TẬP THÊM)
Cho một mảng số nguyên không âm. Gọi
mảng đó là "mảng đẹp" nếu mỗi phần tử YES
x trong mảng xuất hiện đúng x lần. 1 2 2 3 3 3
NO 8 (giải thích: xóa đi 3 số 0, 1 số
Kiểm tra xem mảng có phải là mảng đẹp 0 0 0 1 2 2 2 3 3 3 3 4 4 4 2, 1 số 3, 3 số 4)
hay không. Nếu không hãy xóa đi y số (y 3 3 3 4 4 4 4 4 4 5 1 1 NO 4
là nhỏ nhất có thể) để mảng còn lại thành 1 2 3 4 5 6 7 NO 6 W7A16 mảng đẹp. 2 2 3 3 3 YES
Tìm phần tử xuất hiện nhiều hơn n/2 lần 1 2 2 3 2 2
trong mảng (nếu có) với độ phức tạp thời 1 1 1 3 3 3 2
gian là O(n), độ phức tạp bộ nhớ là O(1), 1 2 4 2 1 1 1
- Boyer–Moore. Nếu không có phần tử 2 2 2 6 6 6 6 1
W7A17 nào thỏa mãn thì không in gì 1 8 8 8 9 9 6
Sắp xếp có điều kiện: Số chẵn đứng 1 2 3 4 5 6 2 4 6 5 3 1
trước, số lẻ đứng sau, chẵn tăng dần, lẻ 32 4 15 123 24 12 8 10 9 4 8 10 12 24 32 123 15 9 W7A18 g iảm dần 3 4 2 6 7 8 9 10 5 7 2 2 2 4 6 8 10 9 7 7 5 3 1 2 3 4 5 0 23 24 100 1000 0 1 2 3 4 5 23 24 100 1000
Merge 2 mảng đã sắp xếp (có thể tăng 1 2 3 4 5 100 200 300
dần, có thể giảm dần) mà không dùng 4 5 6 7 8 9 10
1 2 3 4 4 5 5 6 7 8 9 10 100 200
bất cứ thuật toán sắp xếp nào thành một 300
mảng cũng có cùng thứ tự sắp xếp như 2 9 8 7 6 5 1 0 W7A19 mảng ban đầu 6 5 4 3 2 1 9 8 7 6 6 5 5 4 3 2 1 1 0 12 3 123 34 5 6 7
Cho dãy N số nguyên dương, tính tổng 2 46
các số có k chữ số. Dòng đầu ghi N số
nguyên dương, dòng sau ghi số nguyên 23 4 5 123 456 4 2343 4545 579 W7A20 dương k 3 2 1 2 31 1 31
Cho N là ngày, T là tháng năm 2020, 4 5 125
Tính xem đó là ngày thứ bao nhiêu của 12 13 invalid
W7A21 năm đó nếu đó là ngảy hợp lệ 23 8 236 4 Bình Bùi Bài Bình Nguyễn Tất Bình Dat Nguyễn Mạnh Cường Nguyễn Mạnh Trường
Cho N tên sinh viên gồm cả họ và tên,
tìm xem tên nào hay gặp nhất. Nếu có 2
nhiều tên cùng số lần gặp thì lấy tên có Nguyễn Thị Như Hoa
W7A22 thứ tự từ điển nhỏ nhất Phùng Huy Dat
ban ay ten Linh, ban di canh ten Hieu,
voi may nguoi ban moi ten khong biet ten gi.
Đếm số lượng tên trong xâu kí tự. Tên
được định nghĩa là xâu có độ dài >=2 và Nga la co gai xinh nhat, nhung Hien 2
có chữ cái đầu viết hoa, các chữ cái khác moi sac sao và nhanh nhen nhat, Yen
W7A23 viết thường, chỉ có kí tự cái.
lai diu dang, Ngan thi it noi qua. 4
Cho xâu kí tự, xóa các từ giống nhau liền Toi di di hoc, rat vui khi di hoc hoc voi Toi di hoc, rat vui khi di hoc voi cac
W7A24 kề, chỉ giữ lại từ đầu tiên voi cac ban. ban. 454878434354 88454 5 8978676767
Tìm số có đúng k chữ số lớn nhất có thể 78788724367643978676767 99999878
trong một số có n chữ số (coi đầu vào là 10
một số rất lớn - str). Không được hoán 5454874898789999878
W7A25 đổi vị trí các chữ số 8
Tách các số có trong một đoạn văn bản, 123toidihoc234daihoc123congnghe 480 160
W7A26 tính tổng và tính trung bình các số đó. 23fds34fsdj78sfdsj12 147 36.75 12rere90dsfdsf0sere234 336 84 1fsdfs323fdere65 395 131.67 14jhagd34hjfshj90 138 46 ({}{}){}{}[[]]{} YES ({}{}{}{}[[]]{}) YES
Cho một dãy ngoặc ()(){}{}[][]..., kiểm tra ({}{}{}{}[[]]{)} NO
xem dãy ngoặc đã cho có hợp lệ hay {({}{}{}{}[[]]{}) NO W7A27 không {}{}()<>[[]]] NO
Bài toán Tìm dãy các hợp số dài nhất liên 10 8, 9
tiếp không chứa số nguyên nào <= N (N 20 8, 9, 10
là số nguyên dương cho trước). Nếu có 5 4
nhiều dãy cùng độ dài thì lấy dãy nhỏ 100 91, 92, 93, 94, 95, 96
W7A28 nhất (gặp đầu tiên từ trái qua) 50 24, 25, 26, 27, 28
Tìm Dãy con tăng dần liên tục dài nhất
của một danh sách nhập vào từ bàn 1 2 3 4 5 6 1 2 3 4 9 10 12 1 2 3 4 9 10 12
phím. Lấy dãy đầu tiên nếu có nhiều dãy 4 3 2 6 7 1 8 9 10 0 5 8 9 1 8 9 10
W7A29 có số phần tử bằng nhau 5 4 3 2 1 5
Tìm Dãy con tăng dần KHÔNG liên tục 1 2 3 4 5 6 4 6 7 9 10 12 1 2 3 4 5 6 6 7 9 10 12
dài nhất của một danh sách nhập vào từ 4 3 2 6 7 1 8 9 10 0 5 8 9 2 6 7 8 9 10 W7A30 bàn phím 5 4 3 2 1 5 123456 123465 10212278 1212278 1000000000002343454000001213 2343454000011213
435555555555555589878734343322 1355555555555511111155898787 222213232 34343322222243232
Đổi chỗ đúng 2 chữ số để được số nhỏ 1232329899999999991219999999 1132329899999999991111122999 W7A31 nhất có thể 9999