242.有效的字母异位词(简单)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例1:
输入: s = "anagram", t = "nagaram"
输出: true
示例2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含unicode字符怎么办?你能否调整你的解法来应对这种情况。
解法一:
首先想到的方法就是构造两个字典,统计字典各个字母出现的次数是否相同,之后看两个字典是否相等即可。
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
dicts = {}
dictt = {}
for item in s:
if item in dicts:
dicts[item] += 1
else:
dicts[item] = 1
for item in t:
if item in dictt:
dictt[item] += 1
else:
dictt[item] = 1
return True if dicts==dictt else False
解法二:
Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if len(s) != len(t):
return False
s_set = set(s)
t_set = set(t)
if s_set == t_set:
for i in s_set:
if s.count(i)!=t.count(i):
return False
return True
else:
return False
本文介绍了一种算法,用于判断两个字符串是否为有效的字母异位词。通过构造字典统计字母频率,或使用集合比较元素及频次,实现字符串的有效对比。适用于小写字母组成的字符串,探讨了Unicode字符处理的可能性。
200

被折叠的 条评论
为什么被折叠?



