[Buổi 20][Chuỗi][RDD] Bài 20: Chuỗi nhân bản
Chuỗi nhân bản
Bối cảnh
Cho một số nguyên dương \(N\) và một chuỗi \(S\) có độ dài \(N\) gồm các chữ cái tiếng Anh in thường.
Yêu cầu
Xác định xem chuỗi có phải là sự nối tiếp của hai bản sao của một chuỗi nào đó hay không. Tức là, xác định xem có tồn tại một chuỗi \(T\) sao cho \(S = T + T\).
Input
Dữ liệu nhập được cung cấp từ đầu vào chuẩn theo định dạng sau:
\(N\)
\(S\)
Output
Nếu \(S\) là sự nối tiếp của hai bản sao của một chuỗi nào đó, in ra "Yes"; ngược lại, in ra "No".
Ràng buộc
\(1 \leq N \leq 100\)
\(S\) bao gồm các chữ cái tiếng Anh in thường.
\(|S| = N\)
Ví dụ 1
Input
6
abcabc
Output
Yes
Giải thích ví dụ
Giả sử \(T = abc\), và \(S = T + T\).
Ví dụ 2
Input
6
abcadc
Output
No
Giải thích ví dụ
Ví dụ 1
- Input:
6 abcabc - Giải thích: Chuỗi "abcabc" có thể được chia thành hai bản sao của "abc", nên in ra "Yes".
Ví dụ 2
- Input:
6 abcadc - Giải thích: Chuỗi "abcadc" không thể chia thành hai bản sao giống nhau, nên in ra "No".
Thông tin học tập
- Buổi: B20
- Concepts: std::string, concatenation, string comparison
- Giới hạn kiến thức: B01-B20
- Time limit: 1 second
- Memory limit: 20 MB
- Point: 15
Comments