当前位置:网站首页>约束性统计星号‘*’
约束性统计星号‘*’
2022-08-09 14:38:00 【獜洛橙】
问题描述
给你一个字符串 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 。
提示:
1 <= s.length <= 1000
s 只包含小写英文字母,竖线 '|' 和星号 '*' 。
s 包含 偶数 个竖线 '|' 。来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/count-asterisks
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解决思路
根据问题描述,可以理解为两个'|'之间的*不要统计,也即当'|'为偶数个的时候,才需要去统计*个数。那么给定两个统计变量,当'|'的统计变量为偶数时候,那么遇到一次星号,就让另外一个统计变量+1
代码
class Solution {
public:
int countAsterisks(string s) {
int cnt_1 = 0;
int cnt_2 = 0;
int len = s.size();
for(int i = 0;i<len;i++) {
if(s[i] == '|')
cnt_1 ++;
else if(s[i] == '*' && cnt_1 % 2== 0)
cnt_2 ++;
}
return cnt_2;
}
};边栏推荐
猜你喜欢
随机推荐
凡尔赛一波:凭这份阿里面试突击指南,我已经拿了9张Offer
Assembly language learning (9)
【微信小程序】利用MPFlutter开发微信小程序
C语言程序设计笔记(浙大翁恺版) 第十一周:结构类型
ArcGIS在国土空间·城乡规划中的实战应用
兆骑科创创业大赛竞赛平台,双创服务,投融资对接
结合实际聊聊电平转换电路(常用电平转换电路总结)
[LeetCode] 485.最大连续 1 的个数
C语言程序设计笔记(浙大翁恺版) 第五周:循环控制
易基因|作物育种:DNA甲基化在大豆优良品种培育中的作用研究成果
Swift中的Error处理
Meta released 175 billion chatbots, and billionaire boss Xiao Zha was madly complained by "him"!
nav标签的作用
不要小看一个Redis!从头到尾全是精华,阿里Redis速成笔记太香了
SQL Server查询优化
JUC容器介绍
uniapp学习
兆骑科创创新创业大赛平台,人才引进,项目路演
Docker安装MySQL详细步骤
运维--常用中间件









