时间限制:1s内存限制:128M
【题目描述】
给出一个长为N的字符串S。如果字符串是由某个字符串重复两次形成的,就称为“回声串”。
例如,字符串"abcabc"是回声串,因为它是由"abc"重复两次形成的;而"abcadc"不是回声串。
判断字符串S是否是回声串。
输入格式
第1行,1个正整数N
第2行,1个字符串S
输出格式
若S是回声串,输出"Yes";若不是,输出"No"。
输入样例#1
输入#1
6
abcabc
输出样例#1
输出#1
Yes
输入样例#2
输入#2
6
abcadc
输出样例#2
输出#2
No
解法:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s;
int n;
cin>>n;
if(n%2==1)//如果字符串长度为单数,直接输出NO
{
cout<<"No"<<endl;
return 0;
}
cin>>s;
string s1=s.substr(0,n/2-1);//左边字串
string s2=s.substr(n/2,n-1);//右边字串
if(s1==s2)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
return 0;
}
没登陆的:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s;
int n;
cin>>n;
if(n%2==1)//如果字符串长度为单数,直接输出NO
{
cout<<"No"<<endl;
return 0;
}
cin>>s;
string s1=s.substr(0,n/2-1);//左边字串
string s2=s.substr(n/2,n-1);//右边字串
if(s1==s2)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
return 0;
}