LeetCode——2315. 统计星号

news/2024/11/15 2:37:06/

一、题目

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

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

注意,每个竖线 ‘|’ 都会 恰好 属于一个对。
在这里插入图片描述
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/count-asterisks/

二、C解法

我的思路及代码

遍历字符串,遇到第偶数个"|"则进行计数,否则不计数

int countAsterisks(char * s){int count = 0;int ans = 0;while(*s!='\0'){if(count%2==0){while(*s!='|'&&*s!='\0'){if(*s=='*')ans++;s++;}if(*s!='\0'){s++;count++;}}if(count%2==1){while(*s!='|'&&*s!='\0'){s++;}if(*s!='\0'){s++;count++;}}}return ans;
}
  • 时间复杂度:O(n),其中 n是 s 的长度。只需要遍历 s 一遍。
  • 空间复杂度:O(1)。仅需要常数空间。

官方参考代码

官方采用了标志位进行奇偶的判断,比我的代码更加简洁和快速

int countAsterisks(char * s) {bool valid = true;int res = 0;for (int i = 0; s[i] != '\0'; i++) {char c = s[i];if (c == '|') {valid = !valid;} else if (c == '*' && valid) {res++;}}return res;
}
  • 时间复杂度:O(n),其中 n是 s 的长度。只需要遍历 s 一遍。
  • 空间复杂度:O(1)。仅需要常数空间。

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

相关文章

Springboot+vue+vue在线日程管理系统 java

(1)应用主类SpringbootApplication应该放于根目录下springboot下,通常我们会在主类中做一些框架配置 扫描等配置,SpringbootApplication放在根目录下可以可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容。   &…

linux基本功系列之sudo命令实战一

文章目录一.sudo命令介绍二. 语法格式及常用选项三. sudo配置文件详解3.1 sudo的配置文件3.2 配置文件注释3.3 sudo授权规则四. sudo常用参数实战 参考案例4.1 查看当前用户有哪些被sudo服务授权的命令4.2 结束密码的有效期4.3 限制用户的权限总结前言🚀&#x1f68…

Elasticsearch7.8.0版本入门——JavaAPI操作(文档操作)

目录一、pom文件依赖二、创建实体对象类三、文档操作代码示例3.1、创建文档代码示例3.2、修改文档代码示例3.3、查询文档代码示例3.4、删除文档代码示例一、pom文件依赖 引入相关依赖 <!-- elasticsearch 依赖 --> <dependency><groupId>org.elasticsearch&l…

Logstash:如何使用 Logstash 解析并摄入 JSON 数据到 Elasticsearch

在我之前的文章 “Logstash&#xff1a;Data 转换&#xff0c;分析&#xff0c;提取&#xff0c;丰富及核心操作” 有涉及到这个话题。今天我想使用一个具体的例子来更深入地展示。 准备数据 我们先来把如下的数据拷贝下来&#xff0c;并保存到一个叫做 sample.json 的文件中。…

[kubernetes]-k8s通过psp限制nvidia-plugin插件的使用

导语&#xff1a; k8s通过psp限制nvidia-plugin插件的使用。刚开始接触psp 记录一下 后续投入生产测试了再完善。 通过apiserver开启psp 静态pod会自动更新 # PSP(Pod Security Policy) 在默认情况下并不会开启。通过将PodSecurityPolicy关键词添加到 --enbale-admission-plu…

从零开发一个非常有意思的 Python 项目:手势识别

最近开发了一个手势处理的项目&#xff08;零基础也可以学&#xff0c;就是针对零基础的&#xff09;&#xff0c;我在这儿简单的复述一下原理&#xff0c;总体来说还是比较简单的&#xff0c;主要运用的知识就是opencv&#xff0c;python基本语法&#xff0c;图像处理基础知识…

LinkedList VS ArrayList~

ArrayList VS LinkedList: One: ArrayList:基于数组&#xff0c;需要连续内存LinkedList:基于双向链表&#xff0c;无需连续内存Two: ArrayList:随机访问快(指根据下标访问)LinkedList:随机访问慢(要沿着链表遍历)点击ArrayList的源码: 点击LinkedList的源码&#xff1a; Ar…

[Lua实战]整理Lua中忽略的问题

整理Lua中忽略的问题1.元表metatable和元方法1.1元方法_index可以设置为table1.2.元方法_index可以设置为函数1.3.元方法_index和_newindex实现只读table1.4.忽略元方法提取值 rawget和rawset2.Lua强制GC方法2.1 collectgarbage()3.协程和线程的区别3.1协程coroutine.create()是…