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)的主要内容,如果未能解决你的问题,请参考以下文章