5697. 检查二进制字符串字段

  1. class Solution {
  2. public boolean checkOnesSegment(String s) {
  3. int count1 = 0, count0 = 0;
  4. for (int i = 0; i < s.length(); i++) {
  5. if (s.charAt(i) == '1')
  6. count1++;
  7. if (s.charAt(i) == '0')
  8. count0++;
  9. }
  10. if (count1 == 1 )
  11. return true;
  12. if (count0 <= 1)
  13. return true;
  14. if (count1 == 0)
  15. return false;
  16. int count = 0;
  17. int low = 0, high = 0;
  18. while (low < s.length()) {
  19. if (s.charAt(low) == '1') {
  20. for (high = low + 1; high < s.length(); high++) {
  21. if (s.charAt(high) != '1')
  22. break;
  23. }
  24. }
  25. if (high - low >= 1) {
  26. count++;
  27. low = high;
  28. } else {
  29. ++low;
  30. }
  31. }
  32. if (count == 1)
  33. return true;
  34. return false;
  35. }
  36. }