Проблема состоит в том, чтобы найти все перестановки, используя k из n цифр.Я могу найти все перестановки, но я изо всех сил пытаюсь стереть дубликаты.Я могу успешно сравнить и найти дубликаты, но я изо всех сил пытаюсь их стереть.У меня такое чувство, что я упускаю что-то простое, но я не знаю, что это такое.
Любая помощь будет принята с благодарностью.Я смотрю на это уже неделю.
Вот код, который я получил прямо сейчас.
void getPermutations(int n, int k)
{
string str = "";
//fill string with numbers <= n
for(int i = 0; i < n; i++)
{
str += to_string(i); //convert numbers to string
}
string tempStr = "";
string outputStr = "";
do {
tempStr = str.substr(0, k);
int compareResult = tempStr.compare(0, k, outputStr, 0, k);
if (compareResult == 0)
{
cout << "| same | ";
outputStr.erase(k,k);
}
outputStr = tempStr;
cout << outputStr << " ";
} while (next_permutation(str.begin(), str.end()));
}