Điểm:
1000 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Một xâu được gọi là cân bằng nếu nó thỏa mãn các điều kiện:
- Có độ dài \(n\) là một số nguyên dương chẵn.
- Mọi ký tự xuất hiện ở nửa bên trái (từ vị trí \(1\) đến vị trí \(\dfrac{n}{2}\)) cũng đều xuất hiện ở nửa bên phải (từ vị trí \(\dfrac{n}{2}+1\) đến \(n\)).
- Mọi ký tự xuất hiện ở nửa bên phải cũng đều xuất hiện ở nửa bên trái.
(Lưu ý rằng ta đánh chỉ số cho các ký tự từ \(1\) đến \(n\)).
Cho xâu \(s\) dài không quá \(10^5\) ký tự, hãy lập trình kiểm tra xem nó có phải xâu cân bằng hay không.
Input
-
Dòng đầu chứa số nguyên dương \(T\) \((T\leq 10)\) là số lượng câu hỏi.
-
Mỗi dòng trong \(T\) dòng tiếp theo chứa một xâu \(s\) gồm không quá \(10^5\) chữ cái tiếng Anh in thường.
Output
- In ra \(T\) dòng, mỗi dòng ghi
YES
nếu xâu tương ứng trong input là một xâu cân bằng, hoặcNO
trong trường hợp ngược lại.
Example
Test 1
Input
4
baohieplpvip
abccba
anna
lqdoj
Output
NO
YES
YES
NO
Bình luận
tách xâu ra làm 2.nếu cả hai bằng nhau thì YES,ko thì NO.
code tham khảo
Hint
+ Tạo 2 mảng a và b có 26 phần tử tương ứng với 26 chữ cái tiếng anh in thường (tất cả phần tử của 2 mảng bằng 0).
+ Duyệt hết nửa bên trái xâu s (s[0] -> s[n / 2 - 1]) a[s[i] - 'a'] = 1.
+ Duyệt hết nửa bên phải xâu s (s[n / 2] -> s[n - 1]) b[s[i] - 'a'] = 1.
+ Duyệt từ 0 -> 25 nếu a[i] khác b[i] thì in "NO", không thì "YES".
cho mình xin gợi ý bài này với
Cho em hỏi bài này làm sao v ạ? Em làm như này nhưng không đúng code here
chấm có bị sao không ạ ?
Anh CalWinDao ơi, testcase bài này hơi bị yếu ạ, hình như testcase bài này chỉ có trường hợp mọi ký tự ở bên trái không có ở bên phải thôi chứ không có trường hợp nào ngược lại ạ.