当前位置: 首页 > news >正文

leetcode 1513 仅含1的子串数

一、题目描述

二、解题思路

解法一:双指针枚举(超时)

采用双指针枚举所有可能的子串,并用step来记录子串的数量。

解法二:找规律

我们可以采用找规律来解决这个问题,长度为n全为'1'的字符串,有n(n+1)/2个全为'1'的子字符串,所以我们可以利用这个规律,一次遍历s,在过程中统计连续'1'的个数,实时计算仅含'1'的子串的数量。

三、代码实现

解法一:双指针枚举(超时)

class Solution {
public:int numSub(string s) {//双指针int step=0;for(int left=0;left!=s.size();left++)for(int right=left;right!=s.size();right++){if(s[right]=='1') step++;else if(s[right]!='1') break;}return step;}
};

解法二:找规律

class Solution {
public:int numSub(string s) {int ret=0;int mod=1e9+7;long long count_one=0;for(int current=0;current!=s.size();current++){if(s[current]=='1') count_one++;else{ret+=(count_one*(count_one+1)/2)%mod;count_one=0;}}//处理最后一段ret+=(count_one*(count_one+1)/2)%mod;return ret;}
};

http://www.dtcms.com/a/617902.html

相关文章:

  • 2014网站怎么备案网站怎么做口碑
  • 【微服务】SpringBoot 整合高性能时序数据库 Apache IoTDB 实战操作详解
  • 【电路笔记】-单稳态多谐振荡器
  • Java数据结构-Map和Set-通配符?-反射-枚举-Lambda
  • 在那里能找到网站网络营销与网站推广的区别
  • 架构之路(六):把框架拉出来
  • 【Linux驱动开发】Linux SPI 通信详解:从硬件到驱动再到应用
  • 【ASP.NET进阶】Controller层核心:Action方法全解析,从基础到避坑
  • Imec实现了GaN击穿电压的记录
  • Streaming ELT with Flink CDC · Iceberg Sink
  • AI(新手)
  • 海南城乡建设厅网站百度竞价关键词查询
  • QT开发——常用控件(2)
  • 【Java架构师体系课 | MySQL篇】⑥ 索引优化实战二
  • Spring Boot、Redis、RabbitMQ 在项目中的核心作用详解
  • 做完整的网站设计需要的技术长治建立公司网站的步骤
  • 南宁京象建站公司网站建设留言板实验心得
  • AI、LLM全景图
  • pip升级已安装包方法详解
  • 【Linux日新月异(六)】CentOS 7网络命令深度解析:从传统到现代网络管理
  • LangChain 构建 AI 代理(Agent)
  • 人工智能训练师备考——3.1.1题解
  • 【RL】ORPO: Monolithic Preference Optimization without Reference Model
  • 公益平台网站怎么做网站跳出
  • QT的5种标准对话框
  • 用Rust构建一个OCR命令行工具
  • 网站代码大全国内网站设计作品欣赏
  • LeetCode 热题 100——子串——滑动窗口最大值
  • CPP(容器)STL:
  • 【Java常用API】----- Math