回文序列—Palindrome

 

1. 生成回文序列——对于输入的整数或字符串,生成一个它的回文,长度是输入的2倍

>>> s = input()
abcde
>>> print(s + ''.join(reversed(s)))
abcdeedcba

 

2. 判断回文序列——使用循环

 

class Solution(object):
    def sum1(self, n):
        pal = str(n)
        size = len(pal)
        j = size - 1
        i = 0
        while i < j:
            if pal[i] == pal[j]:
                i += 1
                j -= 1
            else:
                return False
        return True
if __name__ == "__main__":
    s = Solution()
    print(s.sum1(n = '12'))

 

3. 判断回文序列——不使用循环

 1)使用双端队列

def palindrome():
    from collections import deque
    dq = deque(word)
    while len(dq) > 1:
        if dq.popleft() != dq.pop():
            return False
    return True

2)利用反向切片

>>> pal = "madam"
>>> is_palindrome = int(pal==pal[::-1])
>>> print(is_palindrome)
1

 

posted @ 2017-05-23 20:42  回冬  阅读(939)  评论(0编辑  收藏  举报