题目大意
判断一个字符串是否为两个相同字符串相加 ,例如abcabc, abcdabcd.
分析
要满足题目条件,首先字符串要是偶数位数,不然不可能重复。然后我们再判断第n为是否与n+(m/2) 位是否相同(m是字符串长度),都相同则满足条则,不相同则不满足。
代码
#include<bits/stdc++.h> using namespace std; int t; bool check(string a) { int num=a.length(); if(num%2!=0) return false; else { int p=num/2; for(int i=0;i<p;i++) { if(a[i]==a[i+p]) continue; else return false; } } return true; } int main() { cin>>t; while(t--) { string a; cin>>a; if(check(a)) { cout<<"YES"<<endl; } else cout<<"NO"<<endl; } return 0; }