边做边学, 在 HackerRank 上学习 rust

hackerrank是一个OJ,一个很有意思的特点是可以使用各种各样乱七八糟的代码来提交.最近在学rust,使用它来一边提交一边学东西. 选择algorithm->warmup,点开第一题,提交方式选择rust,它会给一个demo,作为io的样例–可惜目前他是错误的.自己写了个如下:

use std::io;

fn main() {
let mut r = String::new();
io::stdin().read_line(&mut r).ok().expect("failed to read line");

let v1:u32 = match r.trim().parse() {
Ok(num) => num,
Err(_) => 0,
};

r = String::new();
io::stdin().read_line(&mut r).ok().expect("failed to read line");

let v2:u32 = match r.trim().parse() {
Ok(num) => num,
Err(_) => 0,
};

// Print the sum
println!("{}", v1 + v2 );
}

提交,直接过.

然后做第二题. 第二题是多行+字符串处理,稍微改一下如下:

use std::io;

fn main() {
let mut r = String::new();
io::stdin().read_line(&mut r).ok().expect("failed to read line");

let cnt:u32 = match r.trim().parse() {
Ok(num) => num,
Err(_) => 0,
};

for _ in 0..cnt {
r = String::new();
io::stdin().read_line(&mut r).ok().expect("failed to read line");
let v: Vec = r.trim().split(' ').collect();
let v1 :u32 = match v[0].trim().parse() {
Ok(num) => num,
Err(_) => 0,
};
let v2 :u32 = match v[1].trim().parse() {
Ok(num) => num,
Err(_) => 0,
};
println!("{}",v1 + v2)
}
}

当然,大海啊都是水,算法啊都没有…我只是想记录下怎么在那个oj上提代码而已…