美文网首页
242. 给定两个字符串 s 和 t ,编写一个函数来判断 t

242. 给定两个字符串 s 和 t ,编写一个函数来判断 t

作者: Yangwenliu | 来源:发表于2019-08-23 18:21 被阅读0次

//242. 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
//
//示例 1:
//
//输入: s = "anagram", t = "nagaram"
//输出: true
//示例 2:
//
//输入: s = "rat", t = "car"
//输出: false
//说明:
//你可以假设字符串只包含小写字母。
//
//来源:力扣(LeetCode)

func main(){

    cases := []struct{
        s string
        t string
    }{
        {s:"anagram",t:"nagaram"},
        {s:"rat",t:"car"},
    }
    for _, v := range cases {
        result := isAnagram(v.s,v.t)
        log.Println("isAnagram result:",result)
    }
    for _, v := range cases {
        result := isAnagram2(v.s,v.t)
        log.Println("isAnagram2 result:",result)
    }

}

// 计数器数表进行比较
func isAnagram2(s,t string)  bool {
    defer timeCost()()
    if len(s) != len(t) {
        return false
    }
    var counter [26]byte
    for _, ch := range s {
        counter[ch-'a']++
    }
    // 如果使用byte -- 溢出 255
    // 使用int8 -- 等于 -1  条件判断 < 0
    for _, ch := range t{
        counter[ch-'a']--
        if counter[ch-'a'] > byte(len(s)){
            return false
        }
    }

    return true
}
// 先排序后进行比较
func isAnagram(s ,t string) bool{
    if len(s) != len(t) {
        return false
    }
    s = sortString(s)
    t = sortString(t)
    return strings.Compare(s,t) == 0
}
func sortString(w string) string {
    s := strings.Split(w, "")
    sort.Strings(s)
    return strings.Join(s, "")
}
func timeCost() func() {
    start := time.Now()
    time.Sleep(time.Nanosecond*100)
    return func() {
        fmt.Printf("time cost = %v\n", time.Since(start))
    }
}

相关文章

  • 242. 给定两个字符串 s 和 t ,编写一个函数来判断 t

    //242. 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。////示例 1:/...

  • LeetCode刷题分类之字符串 242

    242. 有效的字母异位词 题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。...

  • (26int数组与map)leetcode的题目

    242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 ...

  • LeetCodeDay08

    242. 有效的字母异位词 描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位...

  • leetcode-简单排序

    一、 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 二、给定两个数组,编写一个...

  • 每周 ARTS 第 13 期

    1. Algorithm 242. 有效的字母异位词(简单) 描述: 给定两个字符串 s 和 t ,编写一个函数来...

  • 242. 有效的字母异位词

    1.题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t ...

  • Swift - LeetCode - 有效的字母异位词

    题目 给定两个字符串 s 和 t,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个...

  • Leetcode 242 有效的字母异位词

    题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s =...

  • 异位字符串

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "a...

网友评论

      本文标题:242. 给定两个字符串 s 和 t ,编写一个函数来判断 t

      本文链接:https://www.haomeiwen.com/subject/xpatectx.html