题解 | #配置文件恢复#
配置文件恢复
https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5
#include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; bool isMatch(string str, string s) { for (int i = 0; i < s.size(); i++) { if (str[i] != s[i]) { return false; } } return true; } int main() { string input; vector<vector<string>> v; vector<string> s1 = {"reset"}; vector<string> s2 = {"reset", "board", "board fault"}; vector<string> s3 = {"board", "add", "where to add"}; vector<string> s4 = {"board", "delete", "no board at all"}; vector<string> s5 = {"reboot", "backplane", "impossible"}; vector<string> s6 = {"backplane", "abort", "install first"}; v.push_back(s1); v.push_back(s2); v.push_back(s3); v.push_back(s4); v.push_back(s5); v.push_back(s6); while (getline(cin, input)) { // 注意 while 处理多个 case vector<string> v_input; istringstream s(input); string temp; int count = 0; while (getline(s, temp, ' ')) { v_input.push_back(temp); count++; } if (count == 1) { if (isMatch(v[0][0], v_input[0])) { cout << "reset what" << endl; } else { cout << "unknown command" << endl; } } else { bool matched = false; int count = 0; int index; for (int i = 1; i < v.size(); i++) { if (isMatch(v[i][0], v_input[0]) && isMatch(v[i][1], v_input[1])) { index = i; count++; } } if (count == 1) { cout << v[index][2] << endl; matched = true; } if (matched == false) { cout << "unknown command" << endl; } } } } // 64 位输出请用 printf("%lld")