Valid Anagram Solutions in Go
Number 242
Difficulty Easy
Acceptance 56.9%
Link LeetCode
Solutions
Go solution by halfrost/LeetCode-Go
package leetcode// 解法一func isAnagram(s string, t string) bool {alphabet := make([]int, 26)sBytes := []byte(s)tBytes := []byte(t)if len(sBytes) != len(tBytes) {return false}for i := 0; i < len(sBytes); i++ {alphabet[sBytes[i]-'a']++}for i := 0; i < len(tBytes); i++ {alphabet[tBytes[i]-'a']--}for i := 0; i < 26; i++ {if alphabet[i] != 0 {return false}}return true}// 解法二func isAnagram1(s string, t string) bool {if s == "" && t == "" {return true}if s == "" || t == "" {return false}sBytes := []byte(s)tBytes := []byte(t)if len(sBytes) != len(tBytes) {return false}quickSortByte(sBytes, 0, len(sBytes)-1)quickSortByte(tBytes, 0, len(tBytes)-1)for i := 0; i < len(sBytes); i++ {if sBytes[i] != tBytes[i] {return false}}return true}func partitionByte(a []byte, lo, hi int) int {pivot := a[hi]i := lo - 1for j := lo; j < hi; j++ {if a[j] > pivot {i++a[j], a[i] = a[i], a[j]}}a[i+1], a[hi] = a[hi], a[i+1]return i + 1}func quickSortByte(a []byte, lo, hi int) {if lo >= hi {return}p := partitionByte(a, lo, hi)quickSortByte(a, lo, p-1)quickSortByte(a, p+1, hi)}