题目来源:牛客网
描述
给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。
例如
输入: "absba"
返回:true
输入: "ranko"
返回: false
输入: "yamatomaya"
返回: false
输入: "a"
返回: true
解题思路:
1、先对字符串去重,如果去重后只剩下一个字符,说明原字符串只有一个字符或者是由全部都一样的单字符组成,这种情况可以直接返回true,python有一个set
函数刚好可以用到
2、然后对取字符串长度的前一半和后一半(反转)进行对比,如果一样返回true,反之返回false。如果字符串的长度是基数很好取,直接len(str)/2
即可;如果是基数则需要取整一下,把正中间的字符空出来
题解:
class Solution:
def judge(self , str ):
if len(set(str)) == 1:
return True
l = int(len(str)/2)
return str[:l] == str[l+1:][::-1]
网友评论