C++ bài 12.D4: Chuỗi hoán vị
Chúng ta sẽ gọi một chuỗi thu được bằng cách sắp xếp các ký tự có trong chuỗi \(a\) theo một thứ tự nào đó là một hoán vị của \(a\).
Ví dụ, 'greenbin' là một hoán vị của 'beginner'. Như đã thấy, khi cùng một ký tự xuất hiện nhiều lần, ký tự đó phải được sử dụng đúng số lần đó.
Cho trước \(N\) chuỗi \(s_1, s_2, \dots, s_N\). Mỗi chuỗi này có độ dài là \(10\) và bao gồm các ký tự chữ cái thường. Ngoài ra, tất cả các chuỗi này đều khác nhau. Tìm số cặp số nguyên \(i, j\) \((1 \leq i<j \leq N)\) sao cho \(s_i\) là một hoán vị của \(s_j\).
Ràng buộc:
- \(2 \leq N \leq 10^5\)
- \(s_i\) là chuỗi có độ dài \(10\).
- Mỗi ký tự trong \(s_i\) là một chữ cái thường.
- Các chuỗi \(s_1, s_2, \dots, s_N\) đều khác nhau.
ĐỊNH DẠNG ĐẦU VÀO
Đầu vào được cung cấp từ đầu vào chuẩn như sau:
N
s_1
s_2
:
s_N
ĐỊNH DẠNG ĐẦU RA
In ra số cặp số nguyên \(i, j\) \((1 \leq i<j \leq N)\) sao cho \(s_i\) là một hoán vị của \(s_j\).
Ví dụ:
Input
3
acornistnt
peanutbomb
constraint
Output
1
\(s_1 = acornistnt\) là một hoán vị của \(s_3 = constraint\). Không có cặp \(i, j\) nào khác mà \(s_i\) là một hoán vị của \(s_j\), vậy câu trả lời là \(1\).
Input
2
oneplustwo
ninemodsix
Output
0
Nếu không có cặp \(i, j\) nào sao cho \(s_i\) là một hoán vị của \(s_j\), hãy in ra \(0\).
Giải thích ví dụ mẫu:
Ví dụ 1:
- Có 1 cặp chuỗi mà một chuỗi là hoán vị của chuỗi còn lại: "acornistnt" và "constraint".
Ví dụ 2:
- Không có cặp chuỗi nào là hoán vị của nhau.
- Không có cặp chuỗi nào là hoán vị của nhau.
Lời giải bài tập này: Tại đây
Group giải đáp thắc mắc: Lập trình 24h
Fanpage CLB: CLB lập trình Full House- Việt Nam
Youtube: CLB Lập Trình Full House
Comments