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;
}

浙公网安备 33010602011771号