题解 | #简单错误记录#

坐标移动

http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

#include <iostream>
#include <sstream>
#include <map>
#include <queue>

using namespace std;

int main() {
    int i = 0, j;
    string line, tmp;
    map<string, int> m; // [string, count]
    queue<string> q;

    while(getline(cin, line)) {
        stringstream ss(line);
        while(getline(ss, tmp, '\\'));  // 取最后一部分
        j = tmp.find(' ');
        j = j > 16 ? j - 16 : 0;
        tmp = tmp.substr(j);

        if (m.count(tmp)) { // 之前出现过
            m[tmp] += 1;
        } else {
            m[tmp] += 1;
            q.push(tmp);
            if (q.size() > 8) q.pop();
        }
    }

    while(!q.empty()) {
        tmp = q.front();
        q.pop();
        cout << tmp << " " << m[tmp] << endl;
    }
}
全部评论

相关推荐

如题,求问华为1145和25定律是什么意思?刷到好多人说这个东西了,不知道什么意思
我能加班:如果你在主管面试完当天晚上11点45分收到面试反馈邮件的话,大概率是通过主管面试了。25小时是指在你主管面完成收到短信后的25小时你可以在官网查到你是不是通过。 应该是这样
点赞 评论 收藏
分享
我只是一个小白菜:我还用不惯m4,也是山猪吃不了细糠了
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
09-25 15:55
门头沟学院 Java
小肥罗:有道理哈哈真实真实
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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