解题思路
1,初始化2个参数i来记录出现了几次连续的‘1’,flag记录‘1’的连续性
2,遍历s
3,若s.charAt(j)=='1’且flag为false判断为首次出现‘1’,执行i++,将flag设置为true。
4,若s.charAt(j)!='1’则关闭‘1’的连续性,设置flag为false。
5,判断i>1范围false,这里可以避免不符合要求的数据,从头遍历到尾。
6,遍历到尾部i仍然没有>1,则返回true
运行结果
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:39.5 MB, 在所有 Java 提交中击败了58.77%
代码
class Solution {
public boolean checkOnesSegment(String s) {
int i = 0 ;
boolean flag = false;
for (int j = 0; j < s.length(); j++) {
if(s.charAt(j)=='1'&&!flag){
i+=1;
flag = true;
}else if(s.charAt(j)!='1'){
flag = false;
}
if (i>1){
return false;
}
}
return true;
}
// public boolean checkOnesSegment(String s) {
// String[] strs = s.split("0");
// return strs.length == 1;
// }
}