第一个样例,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;
}