回文子串:快手招聘题库

# 解题思路: 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;
}