Re: Перестановки
От: siavol Россия  
Дата: 03.02.03 12:19
Оценка:
Здравствуйте, 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.