2785. 将字符串中的元音字母排序
This commit is contained in:
parent
7fc0c30cf1
commit
4692c200d8
|
|
@ -1 +1,2 @@
|
|||
**/target
|
||||
.idea
|
||||
52
src/main.rs
52
src/main.rs
|
|
@ -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;
|
||||
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;
|
||||
}
|
||||
j += k;
|
||||
j %= nums.len();
|
||||
count += 1;
|
||||
}
|
||||
return;
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue