Posts pythonTip 21 回文子串
Post
Cancel

pythonTip 21 回文子串

题目描述:

给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。如果存在,则输出YES,否则输出NO。 回文串的定义:记串str逆序之后的字符串是str1,若str=str1,则称str是回文串,如”abcba”.

分析

我们对于回文的判断,已经比较熟悉了。 我们要找到是否存在 长度为 n 的回文子串,那么首先一个比较直观的想法就是: 把每一个长度为 n 的子串都判断一下是否为 回文串。

当没有判断的剩下串长度 小于 n 就没有必要进行判断了。 毕竟已经不满足长度为 n 这一个条件了。

# 用来判断 当前字符串是否为  回文串
def palindrome(string):
    string_a = string[::-1]
    return string_a == string

len_a = len(a)
flag = "NO"
for i in range(0, len_a):
    # 当最后剩下 子串长度小于 n 了以后,就没有必要再往后面走了。
    if i + n > len_a:
        break
    
    string = a[i:i+n]
    if palindrome(string):
        flag = "YES"
        break
print(flag)
This post is licensed under CC BY 4.0 by the author.
Trending Tags
Contents

pythonTip 20 信息加密

pythonTip 22 时间就是金钱

Trending Tags