Здравствуйте, mafiya, Вы писали:
[...]
Если универсальное, то можно что-нибудь типа такого:
void Next(int it, string str)
{
if (it<str.Length)
{
Next(it+1, str);
for (int i = it+1; i<str.Length; i++)
{
string temp = str;
// За следующие строки прошу меня простить, самому страшно на них смотреть,
// но как заменить i-й символ в строке так сразу с нелету не сообразил
temp = temp.Remove(it, 1);
temp = temp.Insert(it, str[i].ToString());
temp = temp.Remove(i, 1);
temp = temp.Insert(i, str[it].ToString());
listBox1.Items.Add(temp);
counter++;
Next(it+1, temp);
}
}
}
Правда таким методом теряется самая первая (исходная) перестановка. Используется так:
listBox1.Items.Add(temp); // Шоб не потерялась...
Next(0, str);
Работает вроде приемлимо...
... << RSDN@Home 1.0 beta 5 >>