From 4692c200d862874bd90751b766c9b94e977fc847 Mon Sep 17 00:00:00 2001 From: li-chx Date: Thu, 11 Sep 2025 10:06:43 +0800 Subject: [PATCH] =?UTF-8?q?2785.=20=E5=B0=86=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=85=83=E9=9F=B3=E5=AD=97=E6=AF=8D=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + src/main.rs | 56 +++++++++++++++++++++-------------------------------- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index b60de5b..f326d8c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ **/target +.idea \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index ffd864d..1f68dc3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,44 +1,32 @@ mod arr; struct Solution; - -use crate::arr::make_arr; impl Solution { - pub fn rotate(nums: &mut Vec, k: i32) { - let k = k as usize % nums.len(); - if k == 0 { - return; - } - let mut temp = nums[0]; - let mut j = k; - let mut count = 0; - let mut start = 0; - let mut next_start = start + 1; - while count < nums.len() { - let temp_b = nums[j]; - nums[j] = temp; - temp = temp_b; - if j == start { - j = next_start; - start = next_start; - next_start = start + 1; - temp = nums[j]; - if j >= k { - break; - } + pub fn sort_vowels(s: String) -> String { + let mut chars = vec![0;10]; + let mut indexs = vec![]; + let mut s : Vec = s.chars().collect(); + for i in 0..s.len() { + let c = s[i]; + let idx = "AEIOUaeiou".find(c); + if let Some(idx) = idx { + chars[idx] += 1; + indexs.push(i); } - if j > start && j < k { - next_start = j + 1; - } - j += k; - j %= nums.len(); - count += 1; } - return; + let mut i = 0; + for j in 0..10 { + let c = "AEIOUaeiou".chars().nth(j).unwrap(); + while chars[j] > 0 { + chars[j] -= 1; + s[indexs[i]] = c; + i += 1; + } + } + s.into_iter().collect() } } fn main() { - let mut arr = make_arr("[1,2,3,4,5,6]"); - let sl = Solution::rotate(&mut arr, 4); - println!("{:?}", arr); + let sl = Solution::sort_vowels("lEetcOde".to_string()); + println!("{:?}", sl); }