2315. 统计星号

news/2025/2/6 22:06:16/

2315. 统计星号

一、题目描述:

给你一个字符串 s ,每 两个 连续竖线 ‘|’ 为 一对 。换言之,第一个和第二个 ‘|’ 为一对,第三个和第四个 ‘|’ 为一对,以此类推。

请你返回 不在 竖线对之间,s 中 ‘*’ 的数目。

注意,每个竖线 ‘|’ 都会 恰好 属于一个对。

示例 1:

输入:s = "l|*e*et|c**o|*de|"

输出:2

解释:不在竖线对之间的字符加粗加斜体后,得到字符串:"l|*e*et|c**o|*de|"

第一和第二条竖线 ‘|’ 之间的字符不计入答案。

同时,第三条和第四条竖线 ‘|’ 之间的字符也不计入答案。

不在竖线对之间总共有 2 个星号,所以我们返回 2 。

示例 2:

输入:s = "iamprogrammer"

输出:0

解释:在这个例子中,s 中没有星号。所以返回 0 。

示例 3:

输入:s = "yo|uar|e**|b|e***au|tifu|l"

输出:5

解释:需要考虑的字符加粗加斜体后:“yo|uar|e**|b|e***au|tifu|l” 。不在竖线对之间总共有 5 个星号。所以我们返回 5 。

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/count-asterisks

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

提示:

1 <= s.length <= 1000

s 只包含小写英文字母,竖线 ‘|’ 和星号 ‘*’ 。

s 包含 偶数 个竖线 ‘|’ 。

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/count-asterisks

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、思路分析:

  1. 这道题考察了什么思想?你的思路是什么?

    我的思路是遍历字符串,记录|的个数,当其为奇数时,发现*也不计数,如果其为偶数,则计*的个数。比如"l|*e*et|c**o|*de|",设置一个变量flag,遇到第一个|,计数为1,后面遇到*e*et都不计数,然后遇到第二个|,将flag设置为2,然后后面的c**o计数为2,然后遇到一个|,flag设置为3,*de不会计数,然后遇到一个|,flag计数为4。再遇到下一个|之前都计数,但是这里后面没有了,便不计数。

  2. 做题的时候是不是一次通过的,遇到了什么问题,需要注意什么细节?

    是一次通过的!哈哈哈哈哈哈,这道题目我的思路还是不错的!为自己点赞!刷了这么久的算法题目,开始有点感觉了。

  3. 有几种解法,哪种解法时间复杂度最低,哪种解法空间复杂度最低,最优解法是什么?其他人的题解是什么,谁的效率更好一些?用不同语言实现的话,哪个语言速度最快?3

    func countAsterisks(s string) int {index := 0res := 0for i := 0; i < len(s); i++ {if s[i] == '|' { index++ }if index % 2 == 0 && s[i] == '*' {res++}}return res
    }

    执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户

    内存消耗:1.9 MB, 在所有 Go 提交中击败了76.92%的用户

    通过测试用例:69 / 69

三、AC 代码:

func countAsterisks(s string) int {flag := 0num := 0for _,s := range s{if s == '|'{flag++}if s == '*' && flag % 2 == 0{num++}}return num
}

执行结果:通过

执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户

内存消耗:1.9 MB, 在所有 Go 提交中击败了98.08%的用户

通过测试用例:69 / 69

四、总结:

这道题目是简单的模拟,大家应该都会的,不会看我的解法应该也能明白是什么回事了。


http://www.ppmy.cn/news/369271.html

相关文章

esesesese

<span class"hljs-function" onclickalert(1)>alert(<span class"hljs-string">"Hello CSDN"</span>)</span>;

iQOONeo6SE和iQOONeo5SE区别 哪个好 iQOONeo6SE和iQOONeo5SE哪个值得买 两者配置对比

屏幕。iQOONeo6SE采用6.62英寸三星E4OLED居中挖孔屏&#xff0c;支持120Hz刷新率&#xff0c;采用屏幕指纹解锁方案&#xff0c;而iQOONeo5SE采用6.67英寸居中挖孔LCD屏&#xff0c;支持144Hz刷新率&#xff0c;采用侧边指纹解锁方案。 iqooneo6se更多使用感受和评价&#xff1…

iQOONeo5SE和iQOONeo5S区别

1、屏幕方面 这两款手机虽说都是为用户提供很好的手机120Hz的屏幕刷新&#xff0c;但是在整体的屏幕性能方面是iqooneo5s更好&#xff0c;可以为用户提供很好的手机屏幕性能体验 iQOONeo5SE更多使用感受和评价&#xff1a;http://oppo.adiannao.cn/18 iQOONeo5S更多使用感受和评…

今天给大分享一下c3的媒体查询,适配所有手机端,常用的几种方式

我们先看一些官方提供的 使用link的话&#xff0c;可以用media属性做条件判断 在css中的话&#xff0c;可以media screen用来做判断 也可以拿区间值做判断&#xff0c;如图所示400px - 700px 我也把我平时用的分享给大家&#xff0c;随便复制别跟我客气 media screen and (o…

JAVA-SE

异常&#xff1a;Exception 关键字 try → 可能有异常的代码 catch → 异常后怎么处理 &#xff08;参数是要捕获的异常类型.如下图&#xff09; finally → 一定会执行的代码 throw → 抛出异常 用于方法 throws → throw 处理不了。向上抛 快捷键&#xff1a; ctrlaltt…

SE0

1.SEO和SEM区别 seo&#xff08;search engine optimization&#xff09;搜索引擎优化 介绍&#xff1a;利用一些技术和方法去免费的去提升网站排名 特点&#xff1a;需要长期投入&#xff0c;见效慢&#xff0c;低投入。 sem&#xff08;search engine marketing&#xff…

【论文阅读】Crop Classification in a Heterogeneous Arable Landscape Using Uncalibrated UAV Data

期刊&#xff1a;remote sensing 日期&#xff1a;2018.6 发表单位&#xff1a;苏黎世大学遥感实验室地理系 目录 Abstract 1. Introduction 2. Material 2.1. Study Area ​2.2. Dataset 3. Method 3.1. Resampling 3.2. Feature Extraction ​ 3.3. Data Splitting …

JavaSE(五)

目录 1 类定义和使用1.1 类的定义1.2 类的使用 2 类的实例化2.1 实例化的概念2.2 类和对象的区别 3 this 引用3.1 this引用的概念3.2 this引用的特性 4 对象的构造及初始化4.1 构造方法4.1.1 概念4.1.2 特性 4.2 默认初始化4.3 就地初始化 5 封装5.1 封装概念5.2 访问限定符5.3…