| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Xâu đối xứng | 100 (p) | 1.0s | 256M |
| 2 | Tạo palindrome | 150 (p) | 1.0s | 256M |
| 3 | Hai thao tác trên chuỗi | 200 (p) | 1.0s | 256M |
Một xâu được gọi là đối xứng nếu đọc từ trái qua phải và đọc từ phải qua trái đều giống nhau.
Ví dụ xâu "aba", "abba" là xâu đối xứng; còn xâu "abc", "abca" thì không.
Bạn được cho \(N\) xâu, như vậy sẽ có \(N × N\) cặp xâu. Bạn hãy đếm xem trong \(N×N\) cặp xâu này, có bao nhiêu cặp mà khi nối xâu thứ hai vào sau xâu thứ nhất sẽ cho ra một xâu đối xứng.
Dữ liệu vào luôn đảm bảo tổng độ dài các xâu không quá 1000000.
Test 1
3
1 a
2 ab
2 ba
5
Cho một xâu \(s\). Cần thêm ít nhất bao nhiêu ký tự vào cuối xâu \(s\) để tạo thành một xâu đối xứng? In ra xâu đối xứng đó.
Test 1
4
aaaa
abba
amanaplanacanal
xyz
aaaa
abba
amanaplanacanalpanama
xyzyx
John có một chuỗi \(S\). John được yêu cầu thực hiện hai thao tác sau theo thứ tự trên \(S\):
John muốn sau khi thực hiện hai phép toán trên, kết quả thu được là một chuỗi cho trước. Bạn hãy giúp John tính số cách biến đổi từ chuỗi \(S\) thành một chuỗi \(T\) cho trước.
Test 1
AHYANGYI YANGYIAH
8
Test 2
VSUMSU MSUMSU
2