题解 | #配置文件恢复#

#include <bits/stdc++.h>

using namespace std;

vector<pair<string, string>> youXiaoCommand = {
    {"reset", ""},
    {"reset", "board"},
    {"board", "add"},
    {"board", "delete"},
    {"reboot", "backplane"},
    {"backplane", "abort"}
};

vector<string> commandRes = {
    "reset what",
    "board fault",
    "where to add",
    "no board at all",
    "impossible",
    "install first"
};

int main(){
    string str = "";
    while(getline(cin, str)){
        stringstream iss(str);
        string key1 = "", key2 = "";
        getline(iss, key1, ' '); //第一个关键字
        getline(iss, key2, ' '); //第二个关键字
        
        string res = "";
        int piPeiCount = 0; //记录匹配的关键字个数 (等于1时即唯一匹配到 即匹配成功)
        for(auto iter = youXiaoCommand.begin(); iter != youXiaoCommand.end(); iter++){
            int key1Pos = iter->first.find(key1); //key1在命令的前半部分第一次出现的下标 (为0匹配成功)
            int key2Pos; //key2在命令的前半部分第一次出现的下标 (为0匹配成功)
            
            if(key2 != ""){ //有key2
                key2Pos = iter->second.find(key2); //key2在命令的前半部分第一次出现的下标
            }
            else if(key2 == "" && iter->second.empty()){ //特殊情况匹配到命令 {"reset", ""},
                key2Pos = 0;
            }
            else{ //没匹配到
                key2Pos = -1;
            }
            
            if(key1Pos == 0 && key2Pos == 0){ //匹配成功
                piPeiCount++; //匹配成功的个数
                res = commandRes[iter - youXiaoCommand.begin()]; //索引位置:iter - youXiaoCommand.begin()
            }
        }
        
        if(piPeiCount == 1){ //匹配成功且为唯一匹配
            cout << res << endl;
        }
        else{//否则就是没有匹配成功,输出"unknown command"
            cout<<"unknown command"<<endl;   
        }
    }
    
    return 0;
}
全部评论

相关推荐

bg27强双非本,目前在学习golang后端gin框架部分,在b站找了一个轮子项目敲了一下,技术栈是gin&nbsp;+&nbsp;gorm&nbsp;+&nbsp;mysql&nbsp;+&nbsp;redis。我目前的想法是这一个月学习408和go八股以及刷算法然后在12月找个寒假实习然后大三下开始准备考研。我是考研意愿比较强烈,想问一下我是应该all&nbsp;in其中一个方向吗,我感觉我实习对我考研来说也是没什么帮助的好像。
牛客28967172...:毕业工作,考研,考公是完全不同的方向。 99%的人拼尽全力也只能把一个做好(能做好都已经是佼佼者了,比如进进大厂,考985或者考公) 如果你确定要考研可以不用学任何就业技术框架,也不用实习经验,刷题背知识点就行,但注意必须考92院校起步,因为这个年代双非硕毕业后完全不如双非本(互联网行业),可以说双非硕在互联网就业完全是负收益
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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