💪💪💪此系列仅为记录本人补充学习数据结构相关知识,有兴趣的,大家可以共同学习👏👏👏
[= 字符串中的第一个唯一字符=]
题目描述
解题思路
1、遍历字符串,记录每个字符串出现的频率
2、二次遍历 如果该字符串出现频率为1 返回其索引
解题方法
func firstUniqChar(s string) int {
m := [26]int{}
for _,v := range s {
m[v-'a'] ++
}
for k,v := range s {
if m[v -'a'] == 1 {
return k
}
}
return -1
}
[= 赎金信=]
题目描述
解题思路
1、根据题意,我们可以把杂志字符串遍历存放至map内,并记录器次数
2、遍历赎金字符串ransomNote, 将其也存至map中,但是是相反操作,每次操作完判断是否为负数,如果为负则返回 false 即可
解题方法
func canConstruct(ransomNote string, magazine string) bool {
m := [26]int{}
for _,v := range magazine {
m[v-'a'] ++
}
for _,i := range ransomNote{
m[i-'a']--
if m[i-'a'] < 0 {
return false
}
}
return true
}
[= 有效的字母异位词=]
题目描述
解题方法
func isAnagram(s string, t string) bool {
ms, mt := [26]int{}, [26]int{}
for _,v :=range s {
ms[v-'a']++
}
for _,i :=range t {
mt[i-'a']++
}
return ms == mt
}