mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
@ -566,14 +566,24 @@ function restoreIpAddresses(s: string): string[] {
|
||||
|
||||
```Rust
|
||||
impl Solution {
|
||||
fn is_valid(s: &Vec<char>, start: usize, end: usize) -> bool {
|
||||
if start > end { return false; }
|
||||
if s[start] == '0' && start != end { return false; }
|
||||
fn is_valid(s: &[char], start: usize, end: usize) -> bool {
|
||||
if start > end {
|
||||
return false;
|
||||
}
|
||||
if s[start] == '0' && start != end {
|
||||
return false;
|
||||
}
|
||||
let mut num = 0;
|
||||
for i in start..=end {
|
||||
if s[i] > '9' || s[i] < '0' { return false; }
|
||||
if let Some(digit) = s[i].to_digit(10) { num = num * 10 + digit; }
|
||||
if num > 255 { return false; }
|
||||
for &c in s.iter().take(end + 1).skip(start) {
|
||||
if !('0'..='9').contains(&c) {
|
||||
return false;
|
||||
}
|
||||
if let Some(digit) = c.to_digit(10) {
|
||||
num = num * 10 + digit;
|
||||
}
|
||||
if num > 255 {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
|
Reference in New Issue
Block a user