20240905 finished.
This commit is contained in:
parent
12d3a89857
commit
49a4df064a
|
@ -226,3 +226,4 @@ mod p1450_number_of_students_doing_homework_at_a_given_time;
|
|||
mod p2024_maximize_the_confusion_of_an_exam;
|
||||
mod p2708_maximum_strength_of_a_group;
|
||||
mod p2860_happy_students;
|
||||
mod p3174_clear_digits;
|
50
src/problem/p3174_clear_digits.rs
Normal file
50
src/problem/p3174_clear_digits.rs
Normal file
|
@ -0,0 +1,50 @@
|
|||
/**
|
||||
* [3174] Clear Digits
|
||||
*/
|
||||
pub struct Solution {}
|
||||
|
||||
|
||||
// submission codes start here
|
||||
|
||||
impl Solution {
|
||||
pub fn clear_digits(s: String) -> String {
|
||||
let s: Vec<char> = s.chars().collect();
|
||||
let mut mark = vec![true; s.len()];
|
||||
|
||||
for (i, &c) in s.iter().enumerate() {
|
||||
if !c.is_ascii_digit() {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 是数字
|
||||
mark[i] = false;
|
||||
let mut last = i - 1;
|
||||
|
||||
while !mark[last] {
|
||||
last -= 1;
|
||||
}
|
||||
mark[last] = false;
|
||||
}
|
||||
|
||||
s.iter().enumerate().filter_map(|(i, &c)| {
|
||||
if mark[i] {
|
||||
Some(c)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}).collect()
|
||||
}
|
||||
}
|
||||
|
||||
// submission codes end
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_3174() {
|
||||
assert_eq!("abc".to_owned(), Solution::clear_digits("abc".to_owned()));
|
||||
assert_eq!("".to_owned(), Solution::clear_digits("cb34".to_owned()));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user