# @param {String} s
# @param {String} p
# @return {Integer[]}
def find_anagrams(s, p)
hsh={};hsh.default=0
tly=p.chars.tally;tly.default=0
('a'..'z').each{|c|tly[c]=tly[c];hsh[c]=hsh[c]}
(0...p.size).each{|i|hsh[s[i]]+=1}
ans=[]
ans<<0 if hsh==tly
(0...s.size-p.size).each do|i|
hsh[s[i]]-=1
hsh[s[i+p.size]]+=1
ans<<i+1 if hsh==tly
end
ans
end
개꿀
댓글 0