-
Notifications
You must be signed in to change notification settings - Fork 0
342. Power of Four
Jacky Zhang edited this page Aug 13, 2016
·
1 revision
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example:
Given num = 16, return true. Given num = 5, return false.
Follow up: Could you solve it without loops/recursion?
与power of three类似。
##Approach 1: with loop
public class Solution {
public boolean isPowerOfFour(int num) {
if(num < 1) return false;
while(num > 1) {
if(num % 4 != 0) return false;
num /= 4;
}
return true;
}
}##Approach 2: without loop 注意到power of four有如下特性:二进制数为1后面偶数个0。 因此可以先将number转换为二进制数表示的string,然后与regular expression pattern进行比较。
public class Solution {
public boolean isPowerOfFour(int num) {
return Integer.toBinaryString(num).matches("1(00)*");
}
}