242. 有效的字母异位词
两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)
思路
- 字符转换成byte
- byte排序
- byte挨个对比
// 两个单词如果包含相同的字母,次序不同
func quickSort(arr []byte, left int, right int) {
if left > right {
return
}
i := left
j := right
get := arr[right];
for i < j {
for i < j && arr[i] <= get{
i++
}
arr[j] = arr[i]
for i < j && arr[j] >= get {
j--
}
arr[i] = arr[j]
}
arr[i] = get
quickSort(arr,left,i- 1)
quickSort(arr,i+1,right)
}
func isAnagram(s string, t string) bool {
if len(t) > len(s) || len(t) < len(s){
return false
}
sq1 := []byte(s)
sq2 := []byte(t)
quickSort(sq1, 0, len(sq1)-1)
quickSort(sq2, 0, len(sq2)-1)
for i:=0; i<len(s); i++ {
if sq1[i] != sq2[i]{
return false
}
}
return true
}
本文介绍了一种通过快速排序和字节比较的方法来判断两个字符串是否为有效的字母异位词。首先将字符串转换为字节数组,然后对数组进行排序,最后逐个比较排序后的字节,实现高效判断。
245

被折叠的 条评论
为什么被折叠?



