LeetCode每日一题,2025-8-10
869重新排序得到2的幂
这两个静态代码块不一样。
第一个存储了排序后的 2 的幂的字符串表示
第二个存储了字符数组对象的引用字符串表示
import java.util.Arrays;
import java.util.HashSet;public class T869 {public static final HashSet<String> set = new HashSet<>();static {for (int i = 0; i < 30; i++) {int temp = (1 << i);char[] s = String.valueOf(temp).toCharArray();Arrays.sort(s);String t = new String(s);set.add(t);}}//
// static {
// for (int i = 0; i < 30; i++) {
// int temp = (1 << i);
// char[] s = String.valueOf(temp).toCharArray();
// Arrays.sort(s);
// set.add(s.toString());
// }
// }public boolean reorderedPowerOf2(int n) {char[] s = String.valueOf(n).toCharArray();Arrays.sort(s);String str = new String(s);return set.contains(str);}public static void main(String[] args) {System.out.println(new T869().reorderedPowerOf2(1));}
}