题解:SP2426 PLD - Palindromes
wangzhihong10002 · · 题解
传送门。
题目分析:
这是一道暴力题,可是如果我们一个一个来判断时就会超时,所以我们可以考虑两边同时判断,所以我们可以使用双指针从开头和末尾来遍历,如果两个指针指向的字母不同就说明这个就不是回文串。
例如:当我们判断
代码如下:
#include<bits/stdc++.h>
using namespace std;
int k,ans;
string s;
int main(){
cin>>k>>s;
for(int i=0;i<s.size()-k+1;i++){
int l=i,r=i+k-1,f=1;
while(l<=r){//双指针。
if(s[l]!=s[r]){//如果两边不一样说明这个不是回文串。
f=0;
break;//直接退出循环。
}
l++,r--;
}
if(f)ans++;//如果为回文串就ans++。
}
cout<<ans;//输出答案。
return 0;//华丽的结束。
}