一:题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
二:示例与提示
示例 1:
1 | 输入: s = "anagram", t = "nagaram" |
示例 2:
1 | 输入: s = "rat", t = "car" |
提示:
1 <= s.length, t.length <= 5 * 104
s
和t
仅包含小写字母
三:思路
排序
思路一:利用排序,将两个字符串排序好再一一对比字符是否相同
哈希表
思路二:利用哈希表,创建hashmap,将s中的每个字符都添加到hashmap中,并设置初始值为1,如果有相同的字符,值+1。再到t遍历,判断hashmap中是否有t的字符,如果有,原先的hashmap对应字符的值-1,(理解为相互消掉),如果值不大于(说明词数不匹配),返回false
四:代码
1:正则
1 | var reverseWords = function(s) { |
2:双端队列
1 | var reverseWords = function(s) { |