其他分享
首页 > 其他分享> > LeetCode 869.重新排序得到 2 的幂

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