20241030 finished.

This commit is contained in:
jackfiled 2024-10-30 11:02:42 +08:00
parent f0ba102a70
commit d6a6bb21fb
2 changed files with 48 additions and 0 deletions

View File

@ -284,3 +284,5 @@ mod p684_redundant_connection;
mod p685_redundant_connection_ii;
mod p3211_generate_binary_strings_without_adjacent_zeros;
mod p3216_lexicographically_smallest_string_after_a_swap;

View File

@ -0,0 +1,46 @@
/**
* [3216] Lexicographically Smallest String After a Swap
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn get_smallest_string(s: String) -> String {
let mut s: Vec<u32> = s.chars().map(|x| x.to_digit(10).unwrap()).collect();
for i in 0..s.len() - 1 {
if s[i] % 2 != s[i + 1] % 2 {
continue;
}
if s[i] > s[i + 1] {
let temp = s[i];
s[i] = s[i + 1];
s[i + 1] = temp;
break;
}
}
s.into_iter().map(|x| x.to_string()).collect()
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_3216() {
assert_eq!(
"43520".to_owned(),
Solution::get_smallest_string("45320".to_owned())
);
assert_eq!(
"001".to_owned(),
Solution::get_smallest_string("001".to_owned())
);
}
}