2785. 将字符串中的元音字母排序

This commit is contained in:
li-chx 2025-09-11 10:06:43 +08:00
parent 7fc0c30cf1
commit 4692c200d8
2 changed files with 23 additions and 34 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
**/target
.idea

View File

@ -1,44 +1,32 @@
mod arr;
struct Solution;
use crate::arr::make_arr;
impl Solution {
pub fn rotate(nums: &mut Vec<i32>, 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<char> = 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);
}