题解 | #合并表记录#

合并表记录

https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

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

fn main() {
let mut input = String::new();
        std::io::stdin().read_line(&mut input).expect("input failed.");
        // println!("input {}", input);
        let num = input.trim().parse().expect("can not parse this num");
        let mut map = HashMap::new();
        for _ in 0..num {
            let mut input = String::new();
            std::io::stdin().read_line(&mut input).expect("input failed.");
            let arr: Vec<i32> = input.split_whitespace()
                                     .map(|s| s.parse().expect("input failed2"))
                                     .collect();
            match map.get(&arr[0]) {
                Some(num) => {
                    map.insert(arr[0], num+arr[1]);
                },
                None => {
                    map.insert(arr[0], arr[1]);
                },
            }
        }

        let mut keys: Vec<_> = map.keys().collect();
        keys.sort();

        // println!("result: ");

        for key in keys {
            if let Some(v) = map.get(key) {
                println!("{} {}", key, v);
            }
        }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-08 18:20
职场水母:这题思路是什么,我目前想的一个暴力方法就是先把这个链表遍历一遍,用哈希表存储出现次数,然后再根据哈希表来一个一个删除节点,
点赞 评论 收藏
分享
运营你豪哥:1.模板换一个,现在的模板基础信息加个照片已经占了30%的空间。 2.实习经历的描述,按时间倒序标注清楚,选2-3段和你求职意向契合的经历填写。 3.自我评价再改改,要不就删了;怎么感觉自我评价是在介绍你专业的培养体系,看不出重点要突出什么。
听劝,这个简历怎么改
点赞 评论 收藏
分享
码不完,根本码不完啊。。。
投递4399游戏等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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