void printStr(const unordered_set<string> &test_set,const int flag){ if (flag==1) { cout << "nterminal string is :" << endl; } else{ cout << "terminal string is :" << endl; } for (auto ptr = test_set.cbegin(); ptr!=test_set.cend(); ++ptr) { cout << *ptr <<endl; } cout<<endl; }
string check_ans(const string &s, unordered_set<string> &D) { int len = 0; for (auto iter = D.cbegin(); iter != D.cend(); ++iter) { int i; for (i = 0; i < s.size() && i < (*iter).size(); ++i) { if (s[i] != (*iter)[i]) { break; } } if (i > len) { len = i; } } if (len == s.size()) { return string(); } else { return s.substr(0, len + 1); } }
void printProdcution(const string &str, const unordered_set<string> &test_prdtion){ for (auto ptr = test_prdtion.cbegin(); ptr!= test_prdtion.cend(); ++ptr) { cout << str << "-->" <<*ptr<<endl; } cout<<endl; }