MEX của xâu
Đề bài
Mô tả
Cho một xâu gồm chữ cái Latin thường. Ta định nghĩa MEX của xâu là xâu ngắn nhất không xuất hiện dưới dạng xâu con liên tiếp (contiguous substring) trong xâu đã cho. Nếu có nhiều xâu cùng độ dài ngắn nhất thỏa mãn, MEX là xâu nhỏ nhất theo thứ tự từ điển. Xâu rỗng không được tính là MEX hợp lệ.
Một xâu nhỏ hơn xâu theo thứ tự từ điển khi và chỉ khi một trong hai điều sau đúng:
- là tiền tố của và ;
- tại vị trí đầu tiên mà và khác nhau, ký tự của đứng trước ký tự tương ứng của trong bảng chữ cái.
Xâu con liên tiếp của một xâu là phần thu được bằng cách xóa đi một số ký tự (có thể là 0) ở đầu và một số ký tự (có thể là 0) ở cuối.
Hãy tìm MEX của xâu.
Dữ liệu vào
- Dòng đầu chứa số nguyên , số lượng bộ dữ liệu.
- Với mỗi bộ dữ liệu:
- Dòng đầu chứa số nguyên , độ dài của xâu.
- Dòng thứ hai chứa xâu gồm chữ cái Latin thường.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra MEX của xâu trên một dòng riêng.
Ràng buộc
- Tổng của trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 28 qaabzwsxedcrfvtgbyhnujmiklop 13 cleanairactbd 10 aannttoonn |
ac f b |
Bộ 1: xâu chứa đủ 26 chữ cái nên mọi xâu độ dài 1 đều có mặt; xâu độ dài 2 nhỏ nhất vắng mặt là aa? Không, aa và ab đều xuất hiện, còn ac thì không, nên MEX là ac. Bộ 2: các chữ a, b, c, d, e đều xuất hiện nhưng f thì không, nên MEX là f. Bộ 3: chỉ có a, n, o, t; chữ b vắng mặt nên MEX là b. |
| 1 25 abcdefghijklmnopqrstuvwxy |
z | Xâu chứa các chữ từ a đến y nhưng thiếu z, nên MEX là z. |
| 1 26 zyxwvutsrqponmlkjihgfedcba |
aa | Xâu chứa đủ 26 chữ cái, mọi xâu độ dài 1 đều có mặt. Chữ a chỉ xuất hiện một lần ở cuối nên xâu con aa không tồn tại, do đó MEX là aa. |
Bình luận