Этот вопрос является небольшим изменением этого 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
. Тем не менее, я не могу генерировать вторую строку или обобщать для 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
}
}
Edit: То, что я хочу, чтобы достичь является следующее: (см мой псевдокоде при х = 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}
. Теперь это когда я удаляю только один элемент из оригинала. Тем не менее, я хотел бы обобщить это так, чтобы data1
имел любые изъятия x
для длины x <. И, следовательно, data2
также будет иметь удаление x
, но он будет методично удалять элементы, которые еще не были удалены в data1
.
Является ли это от leetcode? – Walter
Кстати, в чем вопрос? – Walter
@Walter Я обновил вопрос. –