这两个问题都是在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的简洁之处,值得学习