题目描述:给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的字母异位词。若 s
和 t
中每个字符出现的次数都相同,则称 s
和 t
互为字母异位词。
解题思路:这里对于题目的理解是最重要的。我们要明白什么情况下是字母异位词。也就是说两个字符串中要出现相同的字母相同的个数但位置没有要求。既然对于位置没有要求,那么解题的侧重点就该在于出现的字母有什么和出现几次这两个问题上。
1.出现的字母有什么。要分析出现的字母有什么我们不难想到根据ascII码来判断。
2.每个出现的字母一共出现几次。要分析出现的次数我们要想到相同位置的叠加。
针对上述两个问题不难想到之前一篇学习笔记中提到的“键值对”思想,也就想到了本题的解题思路,哈希表。
思路:1.先定义一个数组,用来存放一共有哪些字母,再依次统计每个字符串中字母出现的次数。
2.这里对于出现次数的统计的方法值得我们留意,先统计第一个数组中出现的位置和个数,记录到数组中,对于第二个字符串如果出现相同位置的字母直接把该位置的值-1,如果最终数组全为0则证明这两个字符串是字母异位词。