"aabcdba"のような文字列があるので、別のキャラクタの位置を保存します。 vector
とunordered_map
を使用して保存しようとしています。異なる文字の位置を格納する良いアプローチはありますか?ベクトルやマップを使って別のキャラクタのポジションを保存する方法
void topKFrequent(string s) {
vector<vector<int> >v(123);
//unordered_map<char, vector<int>>m;
for(int i=0;i<s.size();i++) {
v[s[i]].push_back(i);
// m[s[i]].push_back(i);
}
for(int i=0;i<123;i++) {
for(int j=0;j<v[i].size();j++) {
char ch=i;
cout<<ch<<"->"<<v[i][j]<<endl;
}
}
}
文字列=「aabcdba」は、私は以下の結果をしたい場合:
a->0,1,6;
b->2,5;
c->3;
d->4;
なぜこれらのポジションを保存する必要がありますか?あなたは正確に何を解決しようとしていますか? – NathanOliver
あなたが掲示したコードが、あなたのベクトルのベクトルを使って*未定義の動作*を呼び出すので、なぜこの背後にあるのかを少しでも考えてみてください。 – WhozCraig
問題を解決しようとしていますが、問題は次のとおりです。「空でない文字列strと整数kを指定すると、同じ文字が少なくとも距離k離れているように文字列を並べ替えます。 – Atif