File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Enumerate numbers with same length
2
+
3
+ pub fn reordered_power_of2 ( n : i32 ) -> bool {
4
+ let mut candidate_numbers = vec ! [ ] ;
5
+ let n_len = n. to_string ( ) . len ( ) ;
6
+ let mut power = 0 ;
7
+ loop {
8
+ let tmp = 2_i32 . pow ( power) ;
9
+ if tmp. to_string ( ) . len ( ) == n_len {
10
+ candidate_numbers. push ( tmp) ;
11
+ }
12
+ if tmp. to_string ( ) . len ( ) > n_len {
13
+ break ;
14
+ }
15
+ power += 1
16
+ }
17
+ let mut sorted_nums = n. to_string ( ) . chars ( ) . collect :: < Vec < char > > ( ) ;
18
+ sorted_nums. sort ( ) ;
19
+ for number in & candidate_numbers {
20
+ let mut sorted_tmp = number. to_string ( ) . chars ( ) . collect :: < Vec < char > > ( ) ;
21
+ sorted_tmp. sort ( ) ;
22
+ if sorted_tmp == sorted_nums {
23
+ return true ;
24
+ }
25
+ }
26
+ false
27
+ }
28
+
29
+ fn main ( ) {
30
+ println ! ( "{:?}" , reordered_power_of2( 10 ) ) ;
31
+ }
You can’t perform that action at this time.
0 commit comments