题解 | #配置文件恢复#

配置文件恢复

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

#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
#include <utility>
using namespace std;

bool isPre(string str1, string str2){//判断str1是不是str2的前缀
    for(int i = 0; i < str1.length(); i++){
        if(str1[i] != str2[i]) return false;
    }
    return true;
}

int main() {
    string str;
    vector<pair<string, string>> vec = {{"reset", "board"}, {"board", "add"}, {"board", "delete"}, {"reboot", "backplane"}, {"backplane", "abort"}};
    while (getline(cin, str)) {
        string firstWord, secondWord;
        bool flag = false;//表示输入的字串是一个还是两个
        for(int i = 0; i < str.length(); i++){
            if(str[i] == ' '){
                flag = true;
                firstWord = str.substr(0, i);
                secondWord = str.substr(i+1, str.length() - i - 1);
                break;
            }
        }
        if(!flag){
            if(isPre(str, "reset")) cout << "reset what" << endl;
            else cout << "unknown command" << endl;
        }
        else{
            int matchValue = 0;
            bool matched = false;
            for(int i = 0; i < 5; i++){
                if(matched && isPre(firstWord, vec[i].first) && isPre(secondWord, vec[i].second)){//匹配结果不唯一
                    matchValue = 0;//表示匹配失败
                    break;
                }
                else if (isPre(firstWord, vec[i].first) && isPre(secondWord, vec[i].second)) {
                    matched = true;
                    matchValue = i + 1;
                }
            }
            switch (matchValue) {
                case 1: cout << "board fault" << endl; break;
                case 2: cout << "where to add" << endl; break;
                case 3: cout << "no board at all" << endl; break;
                case 4: cout << "impossible" << endl; break;
                case 5: cout << "install first" << endl; break;
                default: cout << "unknown command" << endl; break;
            }
        }
    }
    return 0;
}

全部评论

相关推荐

兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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