part1
242.有效的字母异位词
分析
判断两个单词,是否出现了相同的字母数,只是位置不同。
根据字母的ASCII码唯一,可以判断出最多只会有26种情况,分别遍历单词,一边计数/减数,最后哈希表应该所有子项都为0,说明互为字母异位词。
代码
go
func isAnagram(s string, t string) bool {
record := [26]int{}
for _, r := range s {
record[r-rune('a')]++
}
for _, r := range t {
record[r-rune('a')]--
}
return record == [26]int{}
}
349.两个数组的交集
分析
- 使用哈希表将两个数组出现的数字记录住
- 通过遍历数组找到两个数组出现的数
代码
go
func intersection(nums1 []int, nums2 []int) []int {
record1 := [1001]int{}
record2 := [1001]int{}
res := make([]int, 0)
for _, num := range nums1 {
record1[num] = 1
}
for _, num := range nums2 {
record2[num] = 1
}
for i := 0; i <= 1000; i++ {
if record1[i]+record2[i] == 2 {
res = append(res, i)
}
}
return res
}