RocYang的Golang之路

#LeetCode

文章目录


LeetCode389.找不同

给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。

示例 1:
输入:s = “abcd”, t = “abcde”
输出:“e”
解释:‘e’ 是那个被添加的字母。

示例 2:
输入:s = “”, t = “y”
输出:“y”

代码如下:

// import(
//     "sort"
// )
func findTheDifference(s string, t string) byte {
    //法一:切片排序
    // a,b:=[]byte(s),[]byte(t)
    // if len(a)==0{
    //     return b[0]
    // }
    // sort.Slice(a,func(i,j int)bool{
    //     return a[i]>a[j]
    // })
    // fmt.Println(a)
    // sort.Slice(b,func(i,j int)bool{
    //     return b[i]>b[j]
    // })
    // fmt.Println(b)
    // i,j:=0,0
    // var result byte
    // for i<len(a)&&j<len(b){
    //     if a[i]==b[j]{
    //         if i==len(a)-1{
    //             result=b[len(b)-1]
    //         }
    //         i++
    //         j++
    //     }else{
    //         result=b[j]
    //         break
    //     }
    // }
    // return result
    
    //法二:双map
    sm:=make(map[byte]int)
    tm:=make(map[byte]int)
    var result byte
    for _,v1:=range s{
        sm[byte(v1)]++
    }
    for _,v2:=range t{
        tm[byte(v2)]++
    }
    for k,v:=range tm{
        _,ok:=sm[k]
        if !ok||v!=sm[k]{
            result = k
        }
    }
    return result
}

笔记

  1. Golang:map中判断某个值是否存在
    value, ok := sm[k]
  2. Golang :对切片排序
    sort.Slice(v,func(i,j int)bool{ return v[i]<v[j] })
上一篇:模糊熵、分布熵、近似熵、样本熵理论相关知识与代码实现


下一篇:GPU编程和流式多处理器