B/G 小红的字符串构造
不使用trie树的邪修解法
使用unordered_map统计每一个(题中所给的字符串)的出现次数。之后对于每个
,枚举所有前缀可能并且将出现次数相加。若出现次数之和等于
,则
为本题的答案。
void sol() {
long long n,k;
cin>>n>>k;
vector<string> s(n);
unordered_map<string,long long> mp;
for(int i=0;i<n;i++){
cin>>s[i];
mp[s[i]]++;
}
for(int i=0;i<n;i++){
long long tmp=0;
string stmp="";
for(int j=0;j<s[i].length();j++){
stmp+=s[i][j];
tmp+=mp[stmp];
}
if(tmp==k){
cout<<s[i]<<endl;
return;
}
}
cout<<-1<<endl;
}

京公网安备 11010502036488号