【LeetCode】每日一题 2023_11_7 统计范围内的元音字符串数

文章目录

  • 刷题前唠嗑
  • 题目:最大单词长度乘积
    • 题目描述
    • 代码与解题思路
    • 偷看大佬题解
  • 结语

刷题前唠嗑

【LeetCode】每日一题 2023_11_7 统计范围内的元音字符串数_第1张图片
LeetCode? 启动!!!

题目:最大单词长度乘积

题目链接:2586. 统计范围内的元音字符串数

题目描述

【LeetCode】每日一题 2023_11_7 统计范围内的元音字符串数_第2张图片

代码与解题思路

func vowelStrings(words []string, left int, right int) (ans int) {
    mp := map[byte]int{'a':1, 'e':1, 'i':1, 'o':1, 'u':1}
    for i := left; i <= right; i++ {
        if mp[words[i][0]] == 1 && mp[words[i][len(words[i])-1]] == 1 {
            ans++
        }
    }
    return ans
}

今天的每日一题是简单,我就直接哈希秒了,没啥可以说道的地方,就直接用哈希匹配一下区间内字符串第一个字符和最后一个字符就行了。

偷看大佬题解

啊啊啊啊啊啊啊

我最开始写也是用 for range 的语法糖来做的,结果语法不够熟练,没用出来,最后只好写了普通的 for 循环,是我 go 语法的区间特性没用好

明明是一样的代码,但总觉得他更优雅

func vowelStrings(words []string, left int, right int) (ans int) {
	vowel := map[byte]bool{'a': true, 'e': true, 'i': true, 'o': true, 'u': true}
	for _, v := range words[left : right+1] {
		if vowel[v[0]] && vowel[v[len(v)-1]] {
			ans++
		}
	}
	return
}

然后我又看到了灵神的代码。。。

我大受震撼:

func vowelStrings(words []string, left, right int) (ans int) {
	for _, s := range words[left : right+1] {
		if strings.Contains("aeiou", s[:1]) && strings.Contains("aeiou", s[len(s)-1:]) {
			ans++
		}
	}
	return
}

我连 strings.Contains() 方法都没见过,不过现在见过了,我决定现在马上建一个知识库,来积累我刷算法时遇到的一些 go 语言的解决方案,涨涨见识,做做积累,其实这就是我做每日一题的想要得到的,或者说刷每日一题的目的

结语

今天虽然题目是简单,但也有所收获

你可能感兴趣的:(LeetCode,每日一题,leetcode,算法,职场和发展)