İçeriğe atla
ΣDSA Patterns
Menü
Dil

Bit Manipülasyonu

Rehber 3 / 6 · Yol 3 / 6

Etkileşimli

Zihinsel model

Bu problem için animasyonlu çözüm. Adımları kaydır veya boşlukla duraklat; değişmezi yüksek sesle yeniden anlat.

Adım 1 / 6
1
0
0
0
0

n = 16

İkinin kuvvetinde tam bir bit set. 16 = 10000 kontrolü.

Demo önizleme: Bu çözümler otomatik test paketini geçiyor ama insan tarafından incelenmedi. Trade-off ve yazıları taslak olarak değerlendirin.

Power of Two

Problem (yeniden ifade)

n ikinin kuvvetiyse true döndür (tam olarak bir biti set olan pozitif tamsayı).

Sezgi

İkinin kuvvetleri 1,2,4,8… Böyle bir n’nin en düşük set bitini temizlemek 0 verir: n & (n-1) == 0 ve n > 0.

Yaklaşımlar

n & (n-1) == 0

Doğrulanmadı
Zaman O(1)Alan O(1)

Fikir. Pozitif olmayanı reddet. Tek satırlık bit hilesi.

Yürüyüş. 16 → true; 3 → false; 0 → false.

Trade-off. Log döngüsü de çalışır; bit kontrolü O(1).

Çözüm
export function isPowerOfTwo(n: number): boolean {
  return n > 0 && (n & (n - 1)) === 0;
}
export function isPowerOfTwo(n: number): boolean {
  return n > 0 && (n & (n - 1)) === 0;
}

Şablon bağlantısı

Bit hileleri: en düşük set biti temizleme.

Yansıma