首页 > 试题广场 >

回文子串的数量

[编程题]回文子串的数量
  • 热度指数:737 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的字符串,请你统计并返回这个字符串中回文子串的数目。

回文子串:字符串中连续字符组成的一个子串,这个子串正着读和倒着读一样。
只要开始位置和结束位置不同,相同字符组成的子串也视为不同的回文子串。

数据范围:字符串的长度满足 ,字符串中仅出现小写英文字母
示例1

输入

"nowcoder"

输出

8
示例2

输入

"nnn"

输出

6

说明

六个回文子字符串分别是 n , n , n , nn , nn , nnn   
package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return int整型
*/
func Substrings( str string ) int {
    ans:=0
    for i:=0;i<len(str);i++{
        for j:=i+1;j<=len(str);j++{
            if check(str[i:j]){
                ans++
            }
        }
    }
    return ans
}

func check(s string)bool{
    i,j:=0,len(s)-1
    for i<j{
        if s[i]!=s[j]{
            return false
        }
        i++
        j--
    }
    return true
}

发表于 2023-03-29 16:57:46 回复(0)