LeetCode 869.重新排序得到 2 的幂
作者:互联网
思路:
列出与n等长的2的幂,存在list中。然后遍历list中的2的幂,将其转换为字符数组并排序,与将n转换并排序的字符数组作比较,有相等的就可以通过重新排列得到2的幂。遍历完list后没有找到相等的,则无法通过重新排列得到2的幂。
class Solution {
public boolean reorderedPowerOf2(int n) {
String s = String.valueOf(n);
char[] k = s.toCharArray();
Arrays.sort(k);
int num = s.length();
int i=0,t;
List<String> list = new ArrayList<>();
do{
t = power(i);
s=String.valueOf(t);
if(s.length()==num){
list.add(s);
}
i++;
}while(s.length()<=num);
for(String l:list){
char[] a = l.toCharArray();
Arrays.sort(a);
if(Arrays.equals(a,k)) return true;
}
return false;
}
private int power(int n){
int i=0;
int s=1;
while(i<n){
s*=2;
i++;
}
return s;
}
}
标签:869,String,int,list,length,重新排列,排序,LeetCode 来源: https://blog.csdn.net/CJason_/article/details/121010550