Skip to content

Commit 24a1ad3

Browse files
committed
Create 1980-find-unique-binary-string.rs
1 parent 31cf14c commit 24a1ad3

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

1980-find-unique-binary-string.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
pub fn find_different_binary_string(nums: Vec<String>) -> String {
2+
let n = nums[0].len();
3+
let mut arr = (0..=2_i32.pow(n as u32)).map(|e|e as i32).collect::<Vec<i32>>();
4+
for num in nums {
5+
let intval = isize::from_str_radix(&num, 2).unwrap();
6+
arr[intval as usize] = -1;
7+
}
8+
let mut ret = -1;
9+
for i in arr {
10+
if i != -1 {
11+
ret = i;
12+
break
13+
}
14+
}
15+
let ret = format!("{:b}", ret);
16+
let mut prefix = String::new();
17+
if ret.len() < n {
18+
for _ in 0 .. (n - ret.len()) {
19+
prefix.push('0')
20+
}
21+
}
22+
[prefix, ret].concat()
23+
}
24+
25+
fn main() {
26+
println!("{:?}", find_different_binary_string(vec!["01".to_string(),"10".to_string()]));
27+
println!("{:?}", find_different_binary_string(vec!["00".to_string(),"01".to_string()]));
28+
println!("{:?}", find_different_binary_string(vec!["111".to_string(),"011".to_string(),"001".to_string()]));
29+
}

0 commit comments

Comments
 (0)