题解 | #配置文件恢复#
配置文件恢复
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;
}