0
点赞
收藏
分享

微信扫一扫

回文子串(c++实现)

Ad大成 2022-04-13 阅读 163
c++算法

在这里插入图片描述

原理:

  • 分析回文子串发现,回文子串是以一个字符为中心和两个相同的字符为中心两种情况
  • 回文子串都是在回文中心两边添加相同字符以构成回文串
  • 只要找出回文中心,在两边附加相同字符就可构成回文

C++实现:

int countSubstrings(string s) {
        int len=s.length();
        int sum=0;
        for(int i=0;i<2*len-1;i++) //最多有2*n-1回文中心
        {
            int low=i/2; //回文中心左
            int high=i/2+i%2; //回文中心右
            while(low>=0&&high<len&&s[low]==s[high]) //如果回文中心两边附加的字符相同,则就是回文子串
            {
                low--;
                high++;
                sum++;
            }
        }
        return sum;
举报

相关推荐

0 条评论