Merge pull request #1997 from fwqaaq/patch-28

Update 0763.划分字母区间.md 优化 rust
This commit is contained in:
程序员Carl
2023-04-10 16:18:07 +08:00
committed by GitHub

View File

@ -412,28 +412,22 @@ 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<i32> {
let s = s.chars().collect::<Vec<char>>();
let mut hash: HashMap<char, usize> = HashMap::new();
for i in 0..s.len() {
hash.insert(s[i], i);
let mut hash = vec![0; 26];
for (i, &c) in s.as_bytes().iter().enumerate() {
hash[(c - b'a') as usize] = i;
}
let mut result: Vec<i32> = 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]]);
let mut res = vec![];
let (mut left, mut right) = (0, 0);
for (i, &c) in s.as_bytes().iter().enumerate() {
right = right.max(hash[(c - b'a') as usize]);
if i == right {
result.push((right - left + 1) as i32);
res.push((right - left + 1) as i32);
left = i + 1;
}
}
result
res
}
}
```