LeetCode:242.有效的字母异位词;125.验证回文串(python3)

Posted 南岸青栀*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:242.有效的字母异位词;125.验证回文串(python3)相关的知识,希望对你有一定的参考价值。

242. 有效的字母异位词

在这里插入图片描述

法1:利用字典模拟哈希表

利用字典模拟哈希表:

第一遍for循环建立字典,values值记录出现次数

第二遍for循环,减去出现次数,当出现t[i]中内容不存在字典时,直接返回false

若遍历完成,values最大值为0,则说明全部抵消掉,s和t一致,返回True

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
    	if len(s) != len(t): return False
        dic = {}
        for i in range(len(s)):
            if s[i] in dic:
                dic[s[i]] += 1
            else:
                dic[s[i]] = 1
        for i in range(len(t)):
            if t[i] in dic:
                dic[t[i]] -= 1
            else:
                return False
        return True if max(dic.values()) == 0 else False

法2:先排序,然后直接比较两个是否相同即可

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        return sorted(s) == sorted(t)

扩展:

  • sort 只是应用在 list 上的方法,(就地排序无返回值)。

  • sorted 是内建函数,可对所有可迭代的对象进行排序操作,(返回新的list)。

125. 验证回文串

法1:巧用upper(),创建新字符

先将字符串全部转为大写(小写),然后将数字和字母按照顺序存储到另一个字符变量中,比较字符串是否是回文

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s = s.upper()
        s1 = ""
        for i in s:
            if 'A'<=i<='Z' or '0'<=i<='9':
                s1 += i
        return s1 == s1[::-1]

法2:没话说,就是使用了一个isalnum()函数

class Solution:
    def isPalindrome(self, s: str) -> bool:
        sgood = "".join(ch.lower() for ch in s if ch.isalnum())
        return sgood == sgood[::-1]

这位兄台着实有点秀

在这里插入图片描述

以上是关于LeetCode:242.有效的字母异位词;125.验证回文串(python3)的主要内容,如果未能解决你的问题,请参考以下文章

前端与算法 leetcode 242. 有效的字母异位词

LeetCode-242-有效的字母异位词

leetCode242 有效的字母异位词

LeetCode 242. 有效的字母异位词

LeetCode 242. 有效的字母异位词(Valid Anagram)

leetcode 242 有效的字母异位词(Easy)