题解 | #配置文件恢复#
配置文件恢复
http://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5
#include<iostream> #include<string> using namespace std; int main() { string code[6] = {"reset","reset board","board add","board delete","reboot backplane","backplane abort"}; string run[6] = {"reset what","board fault","where to add","no board at all","impossible","install first"}; int result [6] = {0,0,0,0,0,0}; string input; while(getline(cin, input)) { bool flag = true; //如果输入是一个:只跟第一个匹配 if(input.find(' ') == input.npos) { int length = input.length(); for(int i=0; i<length; i++) { if(input[i] != code[0][i]) { cout<<"unknown command"<<endl; flag = false; break; } } if(flag) { cout<<run[0]<<endl; } } //两个匹配呗 else { int length = input.length(); int result = 0; //两个字的五组都要匹配 for(int i=1; i<6; i++) { int n = 0; flag = true; int m=code[i].find(' '); for(int j=0;j<length;j++) { if(input[j] == ' ') { n = m+1; continue; } if(input[j] != code[i][n]) { flag = false; } n++; } if(flag && result == 0) { result = i; } else if(flag && result != 0) { result = 0; cout<<"unknown command"<<endl; break; } } if(result != 0) { cout<<run[result]<<endl; } else { cout<<"unknown command"<<endl; } } } return 0; }