#3823
Easy Algorithms Reverse letters then special characters in a string
Two Pointers String Simulation
81.7% acceptance
Mar 16, 2026
51
3
Reverse lowercase letters in their positions, then reverse special characters in their positions.
Solution
Rust
Time O(n)
Space O(1)
impl Solution {
pub fn reverse_by_type(s: String) -> String {
let mut chars: Vec<char> = s.chars().collect();
// Collect and reverse letters
let mut letters: Vec<char> = chars.iter().filter(|c| c.is_ascii_lowercase()).copied().collect();
letters.reverse();
// Collect and reverse special characters
let mut specials: Vec<char> = chars.iter().filter(|c| !c.is_ascii_lowercase()).copied().collect();
specials.reverse();
let mut li = 0;
let mut si = 0;
for c in chars.iter_mut() {
if c.is_ascii_lowercase() {
*c = letters[li];
li += 1;
} else {
*c = specials[si];
si += 1;
}
}
chars.into_iter().collect()
}
}