美文网首页
回文(easy)

回文(easy)

作者: warManHy | 来源:发表于2020-12-29 09:09 被阅读0次

1

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121
输出: true
示例 2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:使用python的reverse方法反转字符,判断反转后和现在一致

1. 
y = list(str(x))
y.reverse()
y == list(str(x))
2. 
int(str(x)[::-1]) == x
3. 使用双端队列
        from collections import deque
        q = deque(str(x))
        flag = True
        while len(q) > 1 and flag:
            left = q.popleft()
            right = q.pop()
            if left != right:
                flag = False
        return flag
4. 折中计算

2

给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。

回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。

回文串不一定是字典当中的单词。

 

示例1:

输入:"tactcoa"
输出:true(排列有"tacocat"、"atcocta",等等)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-permutation-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:回文数字符存在个数为奇数不大于1

class Solution(object):
    def canPermutePalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        dic = dict()
        for ch in s:
            if ch in dic:
                dic[ch] += 1
            else:
                dic[ch] = 1
        flag = 0
        # print dic
        for v in dic.values():
            if v % 2 != 0:
                flag += 1
        return flag <= 1 

3

给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。

在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。

注意:
假设字符串的长度不会超过 1010。

示例 1:

输入:
"abccccdd"

输出:
7

解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:先全部偶数构造,然后有奇数+1

class Solution(object):
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: int
        """
        dic = dict()
        for ch in s:
            if ch in dic:
                dic[ch] += 1
            else:
                dic[ch] = 1
        sum = 0
        flag = 0
        # print dic
        for v in dic.values():
            print v
            sum += v
            if v%2 :
                sum -= 1
                flag = 1
        if flag:
            sum += 1
        return sum

相关文章

  • Palindrome Number 回文

    Easy, Array/String 判断整数是否是回文 负数不是回文。 Example:12321:true 与...

  • 回文(easy)

    1 思路:使用python的reverse方法反转字符,判断反转后和现在一致 2 思路:回文数字符存在个数为奇数不...

  • LeetCode | 0409. Longest Palindr

    LeetCode 0409. Longest Palindrome最长回文串【Easy】【Python】【字符串】...

  • LeetCode | 0680. Valid Palindrom

    LeetCode 0680. Valid Palindrome II验证回文字符串 Ⅱ【Easy】【Python】...

  • 9. 回文数(easy)

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输...

  • 每天一题LeetCode【第7天】

    T9. Palindrome Number【Easy】 题目 确定一个整数是否是回文。不要用到额外的空间。 思路 ...

  • Q9 - Easy - 回文数

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 12...

  • 认认真真刷Leetcode:Palindrome Number

    Palindrome Number 难度:easy 回文数是指:n若为自然数,将n反向排列得到n1 且n1==n即...

  • ARTS-1

    Algorithm: 一道easy题,目的是重新开始刷题。判断是否是回文串,只要考虑字母和数字即可。valid-p...

  • 2020-04-25 第十六天

    2020-4-25 10:38签到继续还是三道题;两道easy,一道medium; 5. 最长回文子串 给定一个...

网友评论

      本文标题:回文(easy)

      本文链接:https://www.haomeiwen.com/subject/nroxoktx.html