diff --git a/problems/0763.划分字母区间.md b/problems/0763.划分字母区间.md index ecf064d3..a6066ebc 100644 --- a/problems/0763.划分字母区间.md +++ b/problems/0763.划分字母区间.md @@ -343,6 +343,34 @@ object Solution { } ``` +### Rust + +```Rust +use std::collections::HashMap; +impl Solution { + fn max (a: usize, b: usize) -> usize { + if a > b { a } else { b } + } + pub fn partition_labels(s: String) -> Vec { + let s = s.chars().collect::>(); + let mut hash: HashMap = HashMap::new(); + for i in 0..s.len() { + hash.insert(s[i], i); + } + let mut result: Vec = Vec::new(); + let mut left: usize = 0; + let mut right: usize = 0; + for i in 0..s.len() { + right = Self::max(right, hash[&s[i]]); + if i == right { + result.push((right - left + 1) as i32); + left = i + 1; + } + } + result + } +} +``` -----------------------