defgenerate(numRows:int):
result =[]for i inrange(numRows):
now =[1]*(i+1)if i >=2:for n inrange(1,i):
now[n]= pre[n-1]+pre[n]
result +=[now]
pre = now
return result
defgroupAnagrams(strs):
dic ={
}for s in strs:
keys ="".join(sorted(s))if keys notin dic:
dic[keys]=[s]else:
dic[keys].append(s)returnlist(dic.values())# 对s排序后
aet
abt
aet
ant
ant
aet
dic:{
'ant':['nat','tan'],'abt':['bat'],'aet':['ate','eat','tea']}
单词规律
题面
给一种有规律的字符串 pattern 和一个字符串 s ,判断 s 的规律是否和 pattern 相同。
示例
输入: pattern ="abba", s ="dog cat cat dog"
输出: true
题解
# 使用字典 耗时36msdefwordPattern(pattern, s):# 首先判断长度是否一致iflen(s.split(' '))!=len(pattern):returnFalse# 使用 字典 以自身为key 对方为value 存储
dp =dict()
ds =dict()for pp, ss inzip(pattern, s.split(' ')):# 如果 自身字符串 在字典中 且value不等于对方当前的字符串 返回Falseif(pp in dp and dp[pp]!= ss)or(ss in ds and ds[ss]!= pp):returnFalse
dp[pp]= ss
ds[ss