当前位置:网站首页>约束性统计星号‘*’
约束性统计星号‘*’
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;
}
};边栏推荐
猜你喜欢
随机推荐
同事的接口文档我每次看着就头大,毛病是真的多多多。。。
下班后用微信工作发病是否属于工伤?法院这样判
Item 37: Make std::threads unjoinable on all paths.
Meta released 175 billion chatbots, and billionaire boss Xiao Zha was madly complained by "him"!
shell提取ip地址
Analysis of select principle in golang
【微服务】nacos注册中心和配置中心详解
[LeetCode] 485.最大连续 1 的个数
【DevOps】jekinsBuild step 'Execute shell' marked build as failure
【LeetCode】15. 三数之和
[MRCTF2020]套娃-1
Assembly language learning (5)
深圳堡垒机厂家有哪些?重点推荐哪家?
How does the JVM judge that an object is useless
冰冰学习笔记:new与delete
概率论基础知识整理 | 概率论的基本概念
OpenFeign使用示例
benchmark性能测试
table中 You may have an infinite update loop in a component render function问题解决
[Database] How does Sqlserver backup the database regularly and clear it regularly









