Skip to content

Commit 1014567

Browse files
committed
feat: resolved
1 parent 90afbd8 commit 1014567

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

open_the_lock/src/lib.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ impl Solution {
44
fn digit_neighbors(c: char) -> Vec<char> {
55
let n = c.to_digit(10).unwrap();
66
vec![
7-
char::from_digit((n + 9) % 10, 10).unwrap(),
8-
char::from_digit((n + 1) % 10, 10).unwrap(),
7+
std::char::from_digit((n + 9) % 10, 10).unwrap(),
8+
std::char::from_digit((n + 1) % 10, 10).unwrap(),
99
]
1010
}
1111

@@ -27,6 +27,9 @@ impl Solution {
2727
}
2828

2929
pub fn open_lock(deadends: Vec<String>, target: String) -> i32 {
30+
if deadends.contains(&"0000".to_string()) {
31+
return -1;
32+
}
3033
let mut marked = vec![false; 10000];
3134
for d in deadends {
3235
marked[d.parse::<usize>().unwrap()] = true;
@@ -67,10 +70,10 @@ mod tests {
6770
assert_eq!(Solution::digit_neighbors('9'), vec!['8', '0']);
6871
for n in 1..9 {
6972
assert_eq!(
70-
Solution::digit_neighbors(char::from_digit(n, 10).unwrap()),
73+
Solution::digit_neighbors(std::char::from_digit(n, 10).unwrap()),
7174
vec![
72-
char::from_digit(n - 1, 10).unwrap(),
73-
char::from_digit(n + 1, 10).unwrap()
75+
std::char::from_digit(n - 1, 10).unwrap(),
76+
std::char::from_digit(n + 1, 10).unwrap()
7477
]
7578
);
7679
}

0 commit comments

Comments
 (0)