인터뷰 질문이 있었기 때문에 비공식적 인 해결책이 될 수 있습니다.계속되는 비트 길이 1 스트림 뒤에 0
당신은 1이 설정 비트 여기 가정 할 수있다 1.
의 1111 ... 111100000 ... 000
찾기 길이 (수)의 큰 흐름이 말해.
1 심볼 인 경우가 변경됩니다 방법, aaa..aaaabbbb ... BBBBB 내가 제안 할 수
하나 개의 솔루션은 다음 다음 3을 보면 같은 간격을 두 배로 유지하는 1 비트/기호 모양처럼 말 다음 7 일. 0 또는 다른 기호를 눌렀을 때 마지막 위치로 다시 이동하고 다시 나누기와 정복을 사용하십시오.
스트림의 전체 길이를 알고 있으며 임의로 액세스 할 수 있습니까? 1과 0 부분이 비어 있지 않음을 보증합니까? – Patrick87
당신은 이것이 인터뷰 질문이라고 말했습니다 ... 이론적 인 방향 (큰 0 알고리즘 크기 등)이나 구현 중 하나 (캐싱 및 프로세서 아키텍처와 같은 실제 메커니즘의 효율적인 사용)에서 접근 했습니까? –
'0'이후에는 더 이상 '1'을 가질 수 없다는 것을 안다면 간격의 배가됩니다. 이 경우 각 기호를 개별적으로 (또는 작게는 32 비트 또는 64 비트와 같은 그룹으로) 확인해야합니다. – vsz