leetcode-242-Valid-Anagram

1. 题目

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。

示例 1:

输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:

输入: s = “rat”, t = “car”
输出: false
说明:
你可以假设字符串只包含小写字母。

进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

2. 解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
# python中ord和chr的用法
# ord()函数就是用来返回单个字符的ascii值(0-255)或者unicode数值()
# ord('a') = 97
# chr()函数是输入一个整数[0,255]返回其对应的ascii符号
# chr(97) = 'a'
dic1 = [0]*26
dic2 = [0]*26
for i in s:
dic1[ord(i) - ord('a')] += 1
for j in t:
dic2[ord(j) - ord('a')] += 1
return dic1 == dic2


class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
dict1 = {}
dict2 = {}
for i in s:
dict1[i] = dict1.get(i,0) + 1
for j in t:
dict2[j] = dict2.get(j,0) + 1
return dict1 == dict2