题目描述
Given two strings s and t , write a function to determine if t is an anagram of s.
Example 1:
Input: s = "anagram", t = "nagaram"
Output: true
Example 2:
Input: s = "rat", t = "car"
Output: false
GoLang 语法:interface
- interface 的定义
/* 定义接口 */
type interface_name interface {
method_name1 [return_type]
method_name2 [return_type]
method_name3 [return_type]
...
method_namen [return_type]
}
go 语言的 interface 类似于 C++ 的泛型:一个数据结构只要实现了对应接口的相关方法,这个数据结构满足该类型的接口。
AC 代码
type sortStr []byte
/*
type Interface interface {
// Len is the number of elements in the collection.
Len() int
// Less reports whether the element with
// index i should sort before the element with index j.
Less(i, j int) bool
// Swap swaps the elements with indexes i and j.
Swap(i, j int)
}
*/
// 为 sortStr 实现 sort.Interface
func (str sortStr) Len() int{
return len(str)
}
func (str sortStr) Less(i, j int) bool{
return str[i] < str[j]
}
func (str sortStr) Swap(i, j int){
str[i], str[j] = str[j], str[i]
}
func isAnagram(s string, t string) bool {
strS := sortStr(s)
strT := sortStr(t)
// sort.Sort 需要其参数实现了 sort.Interface 接口
sort.Sort(strS)
sort.Sort(strT)
return (bytes.Compare(strS, strT) == 0)
}