Skip to content

Commit bdddebd

Browse files
authored
Create 0231-power-of-two.kt
1 parent fe62c16 commit bdddebd

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

kotlin/0231-power-of-two.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// iterative
2+
class Solution {
3+
fun isPowerOfTwo(n: Int): Boolean {
4+
if (n == 0) return false
5+
if (n == 1) return true
6+
7+
var n = n
8+
while (n % 2 == 0)
9+
n = n shr 1
10+
11+
return n == 1
12+
}
13+
}
14+
15+
// recursive
16+
class Solution {
17+
fun isPowerOfTwo(n: Int): Boolean {
18+
if (n == 1) return true
19+
if (n <= 0 || n % 2 != 0) return false
20+
return isPowerOfTwo(n shr 1)
21+
}
22+
}
23+
24+
// one line bit manipulation
25+
class Solution {
26+
fun isPowerOfTwo(n: Int) = (n > 0) && (n and (n - 1) == 0)
27+
}
28+
29+
// one line bit manipulation
30+
class Solution {
31+
fun isPowerOfTwo(n: Int) = (n > 0 && ((1 shl 30) % n) == 0)
32+
}

0 commit comments

Comments
 (0)