关于golang:Leetcode专题链表242有效的字母异位词

39次阅读

共计 505 个字符,预计需要花费 2 分钟才能阅读完成。

力扣链接:
https://leetcode-cn.com/probl…
解题思路:

  1. 给定两个字符串 s 和 t,编写一个函数来判断 t 是否是 s 的字母异位词,留神:若 s 和 t 中每个字符呈现的次数都雷同,则称 s 和 t 互为字母异位词
  2. 这里的异位词,其实就是不同单词之间的字母数都雷同,条件外面 s 和 t 都只蕴含小写字母
  3. 查找某个元素是否存在,以及元素呈现的个数,能够应用哈希表来实现
  4. 同时这道题也有一个非凡条件,那就是所有字母都是小写的,数组其实也是一种哈希表,所有字母都是小写的状况下,这个哈希表的个数是确定的,也就是 26 个,所以能够应用数组来代替,因为 map 的查找更加耗时,并且也更耗内存
func isAnagram(s string, t string) bool {
    // 应用数组初始化 26 个字母
    record := make([]int, 26)
    // 遍历 s
    for i := 0; i < len(s); i++ {record[s[i] - 'a'] += 1
    }
    for j := 0; j < len(t); j++ {record[s[j] - 'a'] -= 1
    }
    for k := 0; k < len(record); k++ {if record[k] != 0 {return false}
    }
    return true
}

正文完
 0