来源:力扣(LeetCode)

描述:

给你一个字符串 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 包含 偶数 个竖线 ‘|’ 。

方法:模拟

思路

  根据题意,需要统计第偶数个竖线之后,第奇数个竖线之前,以及第一个竖线之前和最后一个竖线之后的星号。可以用一个布尔值 valid 表示接下去遇到的星号是否要纳入统计,初始化为 true,并且每次遇到竖线都要取反,最后返回符合条件的星号数量即可。

代码:

class Solution {public:int countAsterisks(string s) {bool valid = true;int res = 0;for (int i = 0; i < s.size(); i++) {char c = s[i];if (c == '|') {valid = !valid;} else if (c == '*' && valid) {res++;}}return res;}
};

执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:6.2 MB, 在所有 C++ 提交中击败了53.97%的用户
复杂度分析
时间复杂度:O(n),其中 n 是 s 的长度。只需要遍历 s 一遍。
空间复杂度:O(1)。仅需要常数空间。
author:LeetCode-Solution

【2315. 统计星号】相关推荐

  1. 2315. 统计星号

    2315. 统计星号 一.题目描述: 给你一个字符串 s ,每 两个 连续竖线 '|' 为 一对 .换言之,第一个和第二个 '|' 为一对,第三个和第四个 '|' 为一对,以此类推. 请你返回 不在 ...

  2. ​力扣解法汇总2315. 统计星号

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  3. LeetCode 2315. 统计星号

    给你一个字符串 s ,每 两个 连续竖线 '|' 为 一对 .换言之,第一个和第二个 '|' 为一对,第三个和第四个 '|' 为一对,以此类推. 请你返回 不在 竖线对之间,s 中 '*' 的数目. ...

  4. 2020 ,6 种不死的编程语言!

    点击"开发者技术前线",选择"星标????"在看|星标|留言, 真爱 链接: https://www.oreilly.com/radar/where-progr ...

  5. 【1月每日一题】leetcode Java + c++版 (12 完结)

    目录 2351.第一个出现两次的字母 2042. 检查句子中的数字是否递增 - 字符串模拟 1.c++ 纯模拟 2.c++ stringstream 分隔法 3.java split 2185. 统计 ...

  6. 统计一个英文句子中包含2个a的单词有几个,并将两个a替换为星号,不能用count函数...

    统计一个英文句子中包含2个a的单词有几个,并将两个a替换为星号,不能用count函数 def count(s,x): if (not isinstance(s,str)) or (not isinst ...

  7. 输入一串字符,直到输入一个星号(*)为止,统计(输出)其中的字母个数和数字字符个数。

    #include <iostream> using namespace std; int main() {char ch;int a = 0;//字母计数int b = 0; //数字计数 ...

  8. 统计学习笔记(3)——k近邻法与kd树

    在使用k近邻法进行分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决的方式进行预测.由于k近邻模型的特征空间一般是n维实数向量,所以距离的计算通常采用的是欧式距离.关键的是k值的选取, ...

  9. Hadoop的改进实验(中文分词词频统计及英文词频统计)(1/4)

    声明: 1)本文由我bitpeach原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Windows系统下的百度云(联网),和Ubuntu系统的hadoop1-2-1(自己提前配好).如不 ...

最新文章

  1. Javascript中undefined,NaN等特殊比较
  2. 如何在一分钟内搞定面试官?
  3. php类的实例化和调用,PHP:如何使用另一个类中的参数实例化一个类
  4. 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和
  5. Ubuntu14升级MySQL
  6. H3C认证云计算高级工程师
  7. docker 安装 sqlserver 数据库
  8. Springboot项目结构浅析
  9. ibatIS学习笔记---Ibatis的基本使用方法
  10. html管道符需要转义么,为什么String.split需要管道分隔符进行转义?
  11. Service Mesh 如何重定义云原生计算?阿里服务网格技术大揭秘
  12. 牛客 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 签到题13题
  13. dnf mysql密码多少_DNF 台服数据库密码加密算法
  14. seo优化基础知识:如何优化博客文章
  15. 大一期末计算机应用基础考什么,计算机应用基础期末考试试题
  16. 查看dll文件的两种办法
  17. 如何独立开发 APP 赚钱?
  18. 数组逆时针旋转 90 度
  19. Python——连接数据库操作
  20. Nvme驱动补丁 解决Usb3.0/3.1驱动和磁盘控制器WIN7蓝屏方案

热门文章

  1. 运用计算机声光影像技术,“完美日记 ” 影视广告设计中数字媒体技术的应用分析...
  2. 旗舰手机2021的破局关键:抓住细分市场?
  3. 分享一些Excel打印技巧:表格再大,也能将Excel内容打印在同一页
  4. Linux下挂在磁盘分区教程
  5. php课设报告致谢_PHP程序员转正申请书
  6. 澳门移植“城市大脑”,阿里云提供全套AI解决方案
  7. 如何判断一个数是不是完全平方数
  8. 【Multisim仿真】焦耳小偷电路仿真实验
  9. 修改文件后浏览器自动刷新解决方案
  10. 新建一个项目,如何使用abp用户登录系统