题解 | #字符串加密#
字符串加密
http://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
思路:秘钥串整一个 key
数组存完秘钥串不重复字符后,统一变小写,再补存剩余字符。
对待加密字符串在遍历时进行识别大小后根据位置 push
相应大小写字符进 v
,
代码:
use std::io::{self, *};
fn main() {
let stdin = io::stdin();
let mut is_first = true;
let mut key = Vec::new();
for line in stdin.lock().lines() {
let ll = line.unwrap();
if is_first {
for i in ll.into_bytes() {
if !key.contains(&i){
key.push(i);
}
}
for i in key.iter_mut(){
if *i < 97u8 {
*i += 32u8;
}
}
for i in 97..123u8 {
if !key.contains(&i){
key.push(i);
}
}
is_first = false;
}else{
let mut v = Vec::new();
for i in ll.into_bytes() {
v.push(match i {
65..=90 => key[i as usize - 65] - 32,
97..=122 => key[i as usize - 97],
_ => 0u8,
});
}
println!("{}",String::from_utf8(v).unwrap());
is_first = true;
key.clear();
}
}
}
用 Rust 刷华为机试HJ 文章被收录于专栏
用 Rust 刷 HJ100 题,只需要懂基础 Rust 语法就能看懂