欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

1869. 哪种连续子字符串更长

发布时间:2023/11/29 编程问答 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 1869. 哪种连续子字符串更长 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1869. 哪种连续子字符串更长

给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串,返回 true ;否则,返回 false 。

例如,s = “110100010” 中,由 1 组成的最长连续子字符串的长度是 2 ,由 0 组成的最长连续子字符串的长度是 3 。
注意,如果字符串中不存在 0 ,此时认为由 0 组成的最长连续子字符串的长度是 0 。字符串中不存在 1 的情况也适用此规则。

示例 1:输入:s = "1101" 输出:true 解释: 由 1 组成的最长连续子字符串的长度是 2:"1101" 由 0 组成的最长连续子字符串的长度是 1:"1101" 由 1 组成的子字符串更长,故返回 true 。示例 2:输入:s = "111000" 输出:false 解释: 由 1 组成的最长连续子字符串的长度是 3:"111000" 由 0 组成的最长连续子字符串的长度是 3:"111000" 由 1 组成的子字符串不比由 0 组成的子字符串长,故返回 false 。示例 3:输入:s = "110100010" 输出:false 解释: 由 1 组成的最长连续子字符串的长度是 2:"110100010" 由 0 组成的最长连续子字符串的长度是 3:"110100010" 由 1 组成的子字符串不比由 0 组成的子字符串长,故返回 false 。

提示:

1 <= s.length <= 100
s[i] 不是 ‘0’ 就是 ‘1’

解题思路

计算每个连续0串和连续1串的长度,找出二者的最长串,判断最长的连续1串是否大于最长的连续0串

代码

class Solution { public:bool checkZeroOnes(string s) {int max1(0),max0(0);for (int i = 0; i < s.size(); ++i) {int st=i;while (i<s.size()&&s[i]=='0'){i++;}max0=max(max0,i-st);st=i;while (i<s.size()&&s[i]=='1'){i++;}max1=max(max1,i-st);i--;}return max1>max0;} };

总结

以上是生活随笔为你收集整理的1869. 哪种连续子字符串更长的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。