第一个样例,s="aaaaa",s′="" 。
第二个样例,没有找到s 。
第三个样例,s="ababacac",s′="bbcc"。
第四个样例,没有找到s 。
积累的经验:第一次交超时,为什么呢,因为程序中,我用了大量的strlen,而没有直接设置一个值int让他等于strlen
然后再交还是错,因为ans没有初始化为0,因为ans记录的是a在字符串中的位置,当样例bb的时候,因为ans没初始化,所以ans的值千奇百怪,造成wa
这次教训印象深刻,总的来说还是自己太菜了。一些小习惯没培养好
#include<bits/stdc++.h> using namespace std; const int N = 1e5+10; char a[N],b[N]; int main() { scanf("%s",a); int cnt = 0; int ans = 0; int x = strlen(a); for(int i = 0; i < x; i++) { if(a[i] != ‘a‘) { b[cnt++] = a[i]; } else { ans = i; } } if((cnt % 2 != 0) || (ans >= x-(cnt/2))) { printf(":("); } else{ for(int i = 0; i < cnt/2; i++) { if(b[i] != b[(cnt/2)+i]) { printf(":("); return 0; } } for(int i = 0; i < x-(cnt/2); i++) { printf("%c",a[i]); } } return 0; }