644
刷道小水题,用string做的,就是比较一个串是否是别的串的前缀
//============================================================================ // Name : 644.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <string> #include <algorithm> #include <cstdio> using namespace std; string t, s[1000], temp; int T, n, tag; bool cmp(string a, string b){ return a.length() <= b.length(); } int main() { freopen("a.txt", "r", stdin); T = 0; while(cin >> t&&t!="9"){ T++; n = 0; s[n++] = t; while(cin >> t&&t!="9"){ s[n++] = t; } sort(s, s+n, cmp); tag = 1; for(int i = 0;i < n;i++){ for(int j = i+1;j < n;j++){ temp = s[j].substr(0,s[i].length()); if(temp == s[i]){ tag = 0; goto END; } } } END: if(tag == 1) cout << "Set " << T <<" is immediately decodable" <<endl; else cout << "Set " << T <<" is not immediately decodable" <<endl; } return 0; }