题解 | #配置文件恢复#

配置文件恢复

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;
}

全部评论

相关推荐

04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务