回文子串:快手招聘题库
# 解题思路: 1.因为不同位置的字符串即使相同也算作不同的字符串位置,使用有多少个字符(字符串长度)就有多少个不同字符串的位置。 2.判断字符串回文,使用遍历法。 # 3.将1和2中的计数相加,即使回文总数。
c码:
#include<string.h>
int main()
{
char a[100000];
while (gets(a))
{
int i,j,i_,j_,c=0;
for(i=0;i<strlen(a);i++)
{
for(j=i+1;j<strlen(a);j++)
{
if(a[i]==a[j])
{
i_=i;
j_=j;
while (a[i_]==a[j_])
{
i_++;
j_--;
}
if(i_>=j_) c++;
}
}
}
printf("%d\n",c+strlen(a));
}
return 0;
}