(Go语言)242.ValidAnagram
用数组统计
Given two strings s and t, write a function to determine if t is an anagram of s.
For example,
s = “anagram”, t = “nagaram”, return true.
s = “rat”, t = “car”, return false.
Note:
You may assume the string contains only lowercase alphabets.
Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?
package main
import (
"fmt"
)
func isArrayCntSame(srcCnt [26]int, targetCnt [26]int) bool {
//26
for index := 0; index < 26; index++ {
if srcCnt[index] != targetCnt[index] {
return false
}
}
return true
}
func strToArrayCnt(src string, srcCnt []int) bool {
strLen := len(src)
for index := 0; index < strLen; index++ {
srcCnt[src[index]-'a']++
}
return false
}
func isAnagram(s string, t string) bool {
var srcCnt = [26]int{0}
var targetCnt = [26]int{0}
var srcSlice []int = srcCnt[:]
strToArrayCnt(s, srcSlice)
var targetSlice []int = targetCnt[:]
strToArrayCnt(t, targetSlice)
if isArrayCntSame(srcCnt, targetCnt) == false {
return false
} else {
return true
}
}
func main() {
fmt.Println("1")
isAnagram("anagram", "nagaram")
isAnagram("cat", "car")
isAnagram("", "")
isAnagram("aa", "aa")
}