python 两个值得学习的小例子

这两个问题都是在http://www.pythontip.com中做pythin挑战时碰到的,觉得很不错

1.

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

a="abcbaasdjhkas"
n=5

def isRoud(s):          #判断回文
    s_other = s[::-1]
    if s == s_other:
        return True
    return False

def check(s,n):         #遍历判断
    for x in range(len(s)-n+1):
        if isRoud(s[x:x+n]):
            return True
    return False

if check(a,n):
    print 'YES'
else:
    print 'NO'



2.

给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。
这里将字母表的z和a相连,如果超过了z就回到了a。例如a="cagy",b=3, 则输出 fdjb
print ''.join([chr(97+(ord(c)+b-97)%26) for c in a])
这里抄习一下,自己原本写了比较复杂的函数,还是各种报错,人家一句话就搞定了,果然领略到python的简洁之处,值得学习






你可能感兴趣的:(python学习)