この質問はpostのわずかな変更です。 文字列を指定すると、x個の削除文字列のベクトル を生成します。例えば:補完的な削除を生成するための文字列連結
String a = "ABCD";
int x = 2;
//vector<string> residue = generate(a, x);
//vector residue would have the following elements:
//"AB", "BC", "CD", "AC" "AD", "BD"
がこれをやってしまってから、私は取り除か他の2つの文字 との文字列が含まれている文字列の二 ベクトルを生成したいと思います。ただし、削除の代わりに .
を挿入したいと思います。たとえば、
//vector<string> residue2 would have the following elements:
//"..CD", "A..D", "AB..", ".B.D", ".BC.", "A.C."
これはx = 1
でこれを実行しようとしたものです。しかし、 は2番目の文字列を生成することはできません。またはx
の数値は任意の数値と等しくなります。
vector<int> orignal;
for(int i = 1; i <= 5; i++) original.push_back(i);
vector<int> data2;
for(int p1 = 0; p1 < length; p1++){
auto data1 = original
data1.erase(data1.begin()+p1);
for(int p2 = 0; p2 < length; p2++){
data2 = original;
if(p2 != p1)
data2.erase(data2.begin()+p2);
//do stuff
}
}
編集:私は何を達成したいことは以下の通りです:(X = 1のための私の擬似コードを参照してください) のはoriginal = {1, 2, 3}
を言ってみましょう。その後、外側の最初の反復で、for-loop
、data1 = {2,3}
およびdata2 = {1,2,3}
、次にdata2={1,2,.}
。外側の2回目の反復では、for-loop
、data1 = {1,3}
およびdata2 = {1,2,.}
、次にdata2={.,2,3}
です。そして、これはもう一度data1 = {1,2}
のために続きます。今、私はオリジナルから1つの要素だけを取り除いています。しかし、data1
はx <の長さではx
の削除を持つように一般化したいと思います。したがって、data2
にはx
の削除がありますが、data1
でまだ削除されていない要素は系統的に削除されます。
を取得leetcodeから、このですか? – Walter
Btw、どうしたの? – Walter
@Walter質問を更新しました。 –