diff --git a/src/problem/mod.rs b/src/problem/mod.rs index 164079f..30785e6 100644 --- a/src/problem/mod.rs +++ b/src/problem/mod.rs @@ -129,4 +129,5 @@ mod p242_valid_anagram; mod p49_group_anagrams; mod p202_happy_number; mod p219_contains_duplicate_ii; -mod p128_longest_consecutive_sequence; \ No newline at end of file +mod p128_longest_consecutive_sequence; +mod p228_summary_ranges; \ No newline at end of file diff --git a/src/problem/p202_happy_number.rs b/src/problem/p202_happy_number.rs index e2b33e0..a5d28aa 100644 --- a/src/problem/p202_happy_number.rs +++ b/src/problem/p202_happy_number.rs @@ -4,7 +4,7 @@ pub struct Solution {} // submission codes start here -use std::{collections::HashSet, ops::Add}; +use std::collections::HashSet; impl Solution { pub fn is_happy(n: i32) -> bool { @@ -13,7 +13,6 @@ impl Solution { let mut n = Solution::calculate_square(n); while n != 1 { - dbg!(n); if s.contains(&n) { return false; } diff --git a/src/problem/p228_summary_ranges.rs b/src/problem/p228_summary_ranges.rs new file mode 100644 index 0000000..b931932 --- /dev/null +++ b/src/problem/p228_summary_ranges.rs @@ -0,0 +1,54 @@ +/** + * [228] Summary Ranges + */ +pub struct Solution {} + + +// submission codes start here + +impl Solution { + pub fn summary_ranges(nums: Vec) -> Vec { + 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() { + } +}