C++ bài 18.B6: Chuỗi nhân bản
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.
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\).
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\)
Định dạng nhập
Dữ liệu nhập được cung cấp từ đầu vào chuẩn theo định dạng sau:
\(N\)
\(S\)
Định dạng xuất
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".
Ví dụ:
Input
6
abcabc
Output
Yes
Giả sử \(T = abc\), và \(S = T + T\).
Input
6
abcadc
Output
No
Giải thích ví dụ mẫu:
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".
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