ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常
Given two strings s and t, write a function to determine if t is an anagram of s.
For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.
s与t是两个字符串,看看t是不是s的打乱顺序的情况
方法一:建立26个字母的字典,然后向两个字典中依次添加字符串中有的字母,最后统计
class Solution(object):
def isAnagram(self, s, t):
dic1, dic2 = [0]*26, [0]*26
for item in s:
dic1[ord(item)-ord('a')] += 1
#ord是返回ASCII码
for item in t:
dic2[ord(item)-ord('a')] += 1
#这个循环中是先将s的循环循环结束,之后再循环t的
return dic1 == dic2
方法二: 建立两个字典,将字符串中含有的字母作为键值,最后进行比较两个字典是否相等
def isAnagram1(self, s, t):
dic1, dic2 = {}, {}
for item in s:
dic1[item] = dic1.get(item, 0) + 1
for item in t:
dic2[item] = dic2.get(item, 0) + 1
return dic1 == dic2
应该也可以使用一个字典,字母在s中则在字典中加一在t中则减一
方法三
对字符串s,t分别进行排序
class Solution(object):
def isAnagram(self, s, t):
return sorted(s) == sorted(t)