231. Power of Two
Der Aufgabentext wird für die gewählte Sprache aus dem Russischen übersetzt. Code bleibt unverändert.
given Ganzzahl n, return true, если оно является степенью двойки. В противном случае return false.
Ganzzahl n является степенью двойки, если существует Ganzzahl x, такое что n == 2^x.
Beispiel
Input: n = 1
Output: true
Explanation: 2^0 = 1
C# Lösung
zugeordnet/originalpublic class Solution {
public bool IsPowerOfTwo(int n) {
if (n == 0) return false;
long x = n;
return (x & (-x)) == x;
}
}
C++ Lösung
Auto-Entwurf, vor dem Einreichen prüfen#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public bool IsPowerOfTwo(int n) {
if (n == 0) return false;
long x = n;
return (x & (-x)) == x;
}
}
Java Lösung
zugeordnet/originalclass Solution {
public boolean isPowerOfTwo(int n) {
if (n == 0) return false;
long x = n;
return (x & -x) == x;
}
}
JavaScript Lösung
zugeordnet/originalclass Solution {
isPowerOfTwo(n) {
if (n === 0) return false
let x = BigInt(n)
return (x & -x) === x
}
}
Python Lösung
zugeordnet/originalclass Solution:
def isPowerOfTwo(self, n: int) -> bool:
if n == 0:
return False
return (n & -n) == n
Go Lösung
zugeordnet/originalfunc isPowerOfTwo(n int) bool {
if n == 0 {
return false
}
x := int64(n)
return (x & -x) == x
}
Algorithm
Проверка на ноль: Если n равно нулю, return false, так как ноль не является степенью двойки.
Преобразование к длинному типу: Преобразуйте n к типу long, чтобы избежать переполнения при выполнении побитовых операций.
Побитовая проверка: Используйте побитовую операцию, чтобы проверить, является ли number степенью двойки. number является степенью двойки, если результат выражения (x & (-x)) равен x.
😎
Stellen zu dieser Aufgabe
aktive Stellen with overlapping task tags are angezeigt.
Es gibt noch keine aktiven Stellen.