leetcode/src/problem/p228_summary_ranges.rs
2024-05-13 13:15:46 +08:00

55 lines
994 B
Rust

/**
* [228] Summary Ranges
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn summary_ranges(nums: Vec<i32>) -> Vec<String> {
let mut result = vec![];
if nums.len() == 0 {
return result;
}
let mut begin = nums[0];
let mut end = nums[0];
for i in 1..nums.len() {
if nums[i] == end + 1 {
end += 1;
} else {
result.push(if begin == end {
format!("{}", begin)
} else {
format!("{}->{}", begin, end)
});
begin = nums[i];
end = nums[i];
}
}
result.push(if begin == end {
format!("{}", begin)
} else {
format!("{}->{}", begin, end)
});
result
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_228() {
}
}