2022-7-27 剑指offer-回文串判断

剑指 Offer II 020. 回文子字符串的个数

难度中等

给定一个字符串 s ,请计算这个字符串中有多少个回文子字符串。

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。

 1 class Solution {
 2     public int countSubstrings(String s) {
 3         int ans=0,n=s.length();
 4         int l=0,r=0;
 5         for (int i=0;i<2*n-1;i++){
 6             //偶数是字符串,奇数是空隙
 7             if (i%2==0){
 8                 l=i/2;
 9                 r=i/2;
10             }else{
11                 l=(i-1)/2;
12                 r=(i+1)/2;
13             }      
14             while (s.charAt(l)==s.charAt(r)){
15                 ans++;
16                 l--;
17                 r++;
18                 if (l<0||r>=n) break;
19             }
20         }
21         return ans;
22     }
23 }

思路:遍历回文串的中心,可能是字符,也可能是字符中间,一共2n-1个位置。

posted on 2022-07-27 11:56  阿ming  阅读(15)  评论(0编辑  收藏  举报

导航