题解 | #字符串合并处理#

字符串合并处理

http://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

思路:

  1. 分割奇偶数组,分别排序后填回再进行转换,
  2. 由于是16位按照8421码逆序之后变换字符,所以可以先排除对称内容:0000,0110,1001,1111,所以十六组实际上可以只做十二组 match
  3. 但是要记得 f 要转换为 F,所以需要十三组 match .
  4. 对于 ascii 码表要熟记。

alt

代码:

use std::io::{self, *};

fn main() {
    let stdin = io::stdin();
    for line in stdin.lock().lines() {
        let ll = line.unwrap();
        let mut v = Vec::from(ll.split(" ").collect::<String>());
        let l = v.len();
        if l > 2 {
            let mut odd = vec![];
            let mut eve = vec![];
            let mut i = 0;
            while i < l {
                eve.push(v[i]);
                i += 2;
            }
            i = 1;
            while i < l {
                odd.push(v[i]);
                i += 2;
            }
            eve.sort();
            odd.sort();
            i = 0;
            while i < eve.len() {
                if 2 * i < l {
                    v[2 * i] = eve[i];   
                }
                i += 1;
            }
            i = 0;
            while i < odd.len() {
                if 2 * i + 1 < l {
                    v[2 * i + 1] = odd[i];   
                }
                i += 1;
            }
        }
        for i in 0..l {
            v[i] = match v[i] {
                49 => 56,// 1 => 8 
                50 => 52,// 2 => 4
                51 => 67,// 3 => C
                52 => 50,// 4 => 2 
                53 => 65,// 5 => A
                55 => 69,// 7 => E
                56 => 49,// 8 => 1
                65 | 97 => 53,//A|a => 5
                66 | 98 => 68,//B|b => D
                67 | 99 => 51,//C|c => 3
                68 | 100 => 66,//D|d => B 
                69 | 101 => 55,//E|e => 7
                102 => 70,//f => F
                _ => v[i],
            };
        }
        for i in 0..l {
            print!("{}",char::from(v[i]));
        }
    }
}
用 Rust 刷华为机试HJ 文章被收录于专栏

用 Rust 刷 HJ100 题,只需要懂基础 Rust 语法就能看懂

全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-27 11:48

相关推荐

点赞 评论 收藏
分享
牛客nb666号:见天才的门槛罢了查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务