[leetcode 여행] 배열 - 717.1 비트 와 2 비트 문자

두 가지 특수 문자 가 있 습 니 다.첫 번 째 문 자 는 1 비트 0 로 표시 할 수 있다.두 번 째 문 자 는 두 비트 10 를 사용 할 수 있 습 니 다. 혹시  11 로 표시 합 니 다.
비트 로 구 성 된 문자열 을 보 여 줍 니 다.마지막 문자 가 반드시 비트 문자 인지 물 어보 세 요.주어진 문자열 은 항상 0 으로 끝 납 니 다.
예시 1:
  : 
bits = [1, 0, 0]
  : True
  : 
                       。              。

예시 2:
  : 
bits = [1, 1, 1, 0]
  : False
  : 
                   。               。

주의:
  • 1 <= len(bits) <= 1000 .
  • bits[i]  항상 0 혹시  1 .

  • 해답:
    public class Bit {
        public static void main(String[] args) {
            int[] bits = {1,1,0,0};
            boolean result = isOneBitCharacter2(bits);
            System.out.println(result);
        }
    
        /**
         *    
         *   :
         *             1   
         *   1      ,  true,   false
         * @param bits
         * @return
         */
        public static boolean isOneBitCharacter1(int[] bits) {
            int count = 0;
            for (int i = bits.length - 2; i >= 0 && bits[i] != 0; i--) {
                count++;
            }
            return count % 2 == 0;
        }
    
        /**
         *    :
         *   :
         *       2      ,   1 ,      (  2bit  ),
         *         (  1bit  )       1
         *               (             2bit  )
         * @param bits
         * @return
         */
        public static boolean isOneBitCharacter2(int[] bits) {
            int i = 0;
            while (i < bits.length - 1) {
                if (bits[i] == 1){
                    i += 2;
                }else{
                    i++;
                }
            }
            return i == bits.length - 1;
        }
    }

    좋은 웹페이지 즐겨찾기