回文序列—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,否则为0

>>> pal = "madam"
>>> is_palindrome = int(pal==pal[::-1])
>>> print(is_palindrome)
1
时间: 2024-11-10 15:15:24

回文序列—Palindrome的相关文章

131. Palindrome Partitioning

Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s. For example, given s = "aab",Return [ ["aa","b"], ["a","a","

动态规划最长的回文序列

15-2(最长的回文序列) 回文(palindrome)它是一个正序和反向同一非空字符串.例如.全长1串,civic,racecar,aibohphobia他们是回文.设计一个有效的算法.文子序列. 比如,给定输入character,算法应该返回carac.算法的执行时间是怎么样的? 解题思路:首先我们要注意的是题目要求求出最长回文子序列,而不是子串. 假设是子串.比方abcdebca,该回文子串长度为1,是当中随意一个字符,而回文子序列是abcdbca(abcebca).所以求子串和子序列有一

HDU 1513 Palindrome:LCS(最长公共子序列)or 记忆化搜索

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 题意: 给你一个字符串s,你可以在s中的任意位置添加任意字符,问你将s变成一个回文串最少需要添加字符的个数. 题解1(LCS): 很神奇的做法. 先求s和s的反串的LCS,也就是原串中已经满足回文性质的字符个数. 然后要变成回文串的话,只需要为剩下的每个落单的字符,相应地插入一个和它相同的字符即可. 所以答案是:s.size()-LCS(s,rev(s)) 另外,求LCS时只会用到lcs[i-

Palindrome Linked List Leetcode

Given a singly linked list, determine if it is a palindrome. Follow up:Could you do it in O(n) time and O(1) space? 这个follow up要求O(n)的时间和O(1)的空间,可以先reverse一半,然后再对比.只是reverse的时候要考虑奇数个还是偶数个.如果是奇数个的话,就跳过最中间的,从下一个开始reverse. /** * Definition for singly-li

LeetCode 9 Palindrome Number (回文数)

翻译 确定一个整数是否是回文数.不能使用额外的空间. 一些提示: 负数能不能是回文数呢?(比如,-1) 如果你想将整数转换成字符串,但要注意限制使用额外的空间. 你也可以考虑翻转一个整数. 然而,如果你已经解决了问题"翻转整数(译者注:LeetCode 第七题), 那么你应该知道翻转的整数可能会造成溢出. 你将如何处理这种情况? 这是一个解决该问题更通用的方法. 原文 Determine whether an integer is a palindrome. Do this without ex

Palindrome Linked List

Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time and O(1) space? 思路: 把链表一分为二,把右边的一半翻转,再逐个比对左右的链表即可. /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo

[LeetCode]132.Palindrome Partitioning II

题目 Given a string s, partition s such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of s. For example, given s = "aab", Return 1 since the palindrome partitioning ["aa&qu

[LeetCode]Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, "A man, a plan, a canal: Panama" is a palindrome. "race a car" is not a palindrome. Note: Have you consider that

leetcode -- Palindrome Partitioning II

指责别人,看清自己 [问题描述] Given a string s, partition s such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of s. For example, given s = "aab",Return 1 since the palindrome partitioning