注意如下几点:
0-9:48-57A-Z:65-90a-z:97-122

ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
>>> ord('0')
48
>>> ord('A')
65
>>> ord('a')
97
ord()函数的一个应用场景就是,利用哈希表解决字母异位词问题。
利用ord()函数求解每个字母的ASCII数值,再利用每个字母和字母a之间的差值,将26个小写英文字母映射到下标分别为0-25的数组上,数组中存放的是每个字母的数目。
例如:

class Solution(object):
def findAnagrams(self, s, p):
"""
:type s: str
:type p: str
:rtype: List[int]
"""
result = []
record_s = [0]*26
record_p = [0]*26
if len(s) < len(p):
return result
for i in range(len(p)):
record_s[ord(s[i])-ord('a')] += 1
record_p[ord(p[i])-ord('a')] += 1
if record_s == record_p:
result.append(0)
for i in range(len(s)-len(p)):
record_s[ord(s[i])-ord('a')] -= 1
record_s[ord(s[i+len(p)])-ord('a')] += 1
if record_s == record_p:
result.append(i+1)
return result免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理