1417.重新格式化字符串
链接:1417.重新格式化字符串
难度:Easy
标签:字符串
简介:请你返回 重新格式化后 的字符串;如果无法按要求重新格式化,则返回一个 空字符串 。
题解 1 - rust
- 编辑时间:2022-08-11
- 执行用时:4ms
- 内存消耗:2.1MB
- 编程语言:rust
- 解法介绍:重新排列。
impl Solution {
    pub fn reformat(s: String) -> String {
        let (mut list_num, mut list_char) = (Vec::new(), Vec::new());
        for c in s.chars().collect::<Vec<char>>() {
            if c.is_numeric() {
                list_num.push(c);
            } else {
                list_char.push(c);
            }
        }
        let mut ans = String::new();
        if (list_num.len() as i32 - list_char.len() as i32).abs() > 1 {
            return ans;
        }
        let (mut list1, mut list2) = if list_num.len() > list_char.len() {
            (list_num.into_iter(), list_char.into_iter())
        } else {
            (list_char.into_iter(), list_num.into_iter())
        };
        loop {
            let mut c;
            c = list1.next();
            if c.is_none() {
                break;
            };
            ans.push(c.unwrap());
            c = list2.next();
            if c.is_none() {
                break;
            };
            ans.push(c.unwrap());
        }
        ans
    }
}