题目大概意思是:给你个只有0和1的字符串,如果他出现了长度大于1的子串是回文就输出NO,否则YES。
思路:如果这个字符串长度大于2肯定是NO,因为2位的时候保证不是回文的前提下只能是01或者10,第三位的时候不管加什么都会出现回文,长度为2位的时候只有00和11是回文输出NO,其他情况都是YES。(总的意思就是字符串出现00,11,101,010就是NO,否则YES)
#include "bits/stdc++.h"
using namespace std;
int main(){
int n,m;
cin>>n;
while (n--){
string s,str="";
cin>>m>>s;
if(s.find("11")!=-1||s.find("00")!=-1||s.find("010")!=-1||s.find("101")!=-1)cout<<"NO"<<endl;//find()函数是在某个字符串中找某个东西,如果找不到返回-1,找得到返回下标
else cout<<"YES"<<endl;
}
return 0;
}