From 7c60dee83b436e8e8a667bf9f191beced8de4fc3 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Mon, 10 Mar 2025 00:36:13 -0600 Subject: chore: move cpp and rust code to directory --- other/reverse_vowel_string.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 other/reverse_vowel_string.rs (limited to 'other/reverse_vowel_string.rs') diff --git a/other/reverse_vowel_string.rs b/other/reverse_vowel_string.rs new file mode 100644 index 0000000..4ae282d --- /dev/null +++ b/other/reverse_vowel_string.rs @@ -0,0 +1,33 @@ +struct Solution; + +impl Solution { + pub fn reverse_vowels(s: String) -> String { + let (mut i, mut j) = (0, s.len().checked_sub(1).unwrap_or(0)); + let mut cs = s.chars().collect::>(); + while i < j { + if !Self::is_vowel(cs[i].to_ascii_lowercase()) { + i += 1; + continue + } + if !Self::is_vowel(cs[j].to_ascii_lowercase()) { + j -= 1; + continue + } + cs.swap(i, j); + i += 1; + j -= 1; + } + cs.iter().collect() + } + fn is_vowel(c: char) -> bool { + match c { + 'a' | 'e' | 'i' | 'o' | 'u' => true, + _ => false + } + } +} + +fn main() { + let s = "hello".to_string(); + print!("{}", Solution::reverse_vowels(s)); +} -- cgit v1.2.3