#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
}
笔记
- Golang:map中判断某个值是否存在
value, ok := sm[k] - Golang :对切片排序
sort.Slice(v,func(i,j int)bool{ return v[i]<v[j] })