//给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串，返回 true ；否则，返回 fa
//lse 。 
//
// 
// 例如，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' 
// 
// Related Topics 数组 双指针 
// 👍 7 👎 0

package leetcode.editor.cn;

//1869:哪种连续子字符串更长
public class LongerContiguousSegmentsOfOnesThanZeros {
    public static void main(String[] args) {
        //测试代码
        Solution solution = new LongerContiguousSegmentsOfOnesThanZeros().new Solution();
    }

    //力扣代码
    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public boolean checkZeroOnes(String s) {
            if (s.length() == 0 || !s.contains("1")) {
                return false;
            }
            if (!s.contains("0")) {
                return true;
            }
            int[] lengths = new int[2];
            int start0 = s.indexOf("0");
            int start1 = s.indexOf("1");
            int[] maxs = new int[2];
            char ch = '0';
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == ch) {
                    lengths[ch - '0']++;
                } else {
                    maxs[ch - '0'] = Math.max(maxs[ch - '0'], lengths[ch - '0']);
                    lengths[ch - '0'] = 0;
                    ch = s.charAt(i);
                    lengths[ch - '0']++;
                }
            }
            maxs[ch - '0'] = Math.max(maxs[ch - '0'], lengths[ch - '0']);
            return maxs[1] > maxs[0];
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}