目录

超级码力初赛第二场 五字回文

题目描述

小栖最近很喜欢回文串,由于小栖的幸运数字是5,他想知道形似“abcba"的回文串在他给定的字符串中的数量

s.length <= 10^6

字符串s只包含小写字母

示例

  • 示例1 :

    1
    2
    
    输入:s = "abcba"
    输出:1
    
  • 示例2:

    1
    2
    3
    
    输入:s = "abcbabcccb"
    输出:2
    解释:形似”abcba“的字符串有”abcba“和”cbabc“
    

    来源:九章算法


打卡水题, 很简单的字符串操作题. 根据题意可知5位数的字符串,以中间位分割,两侧对称位置相同,且单侧与中间位置的值均不同。从第二个位置(即第一个可能为回文字符串)开始遍历即可,秒过。

  • 题解:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    class Solution:
    """
    @param s: The given string
    @return: return the number of Five-character palindrome
    """
    
    def Fivecharacterpalindrome(self, s):
        # write your code here
        result = 0
        s_len = len(s)
        for x in range(2, s_len-2):
            if s[x+1] == s[x-1] and s[x+2] == s[x-2] and s[x] != s[x+1] and  s[x] != s[x+2] and s[x+1] != s[x+2]:
                result = result+1
        return result