Вниз
Скачать: CL | DM;

Перестановки...   Найти похожие ветки 

← →
Chuvak ©   (2005-11-20 18:28) [0]

Подскажите, как найти все возможные перестановки букв в строке x. Интересует реализация на языке Паскаль. хоть идею подкиньте, а то я чёт совсем запутался... По идее общее кол-во таких строк будет length(x)!...А вот как их все перебирать не врублюсь...


← →
Anatoly Podgoretsky ©   (2005-11-20 18:36) [1]

Похоже на лабораторную, только вот не все условия указаны.


← →
Chuvak ©   (2005-11-20 18:47) [2]

Anatoly Podgoretsky ©   (20.11.05 18:36) [1]
Вы правы, сэр...
меня иетересует сам алгоритм перестановки...


← →
TUser ©   (2005-11-20 19:26) [3]

Не тестировал, может случайно троян получился. Так что код прочитай прежде чем запускать.

procedure PrintAll (S: string; Prefix: string = "");
var i: integer;
begin
 if length(S) <= 1 then begin
   writeln (Prefix + S);
   exit;
   end;

 for i:=1 to length(S) do
   PrintAll (copy(S,1,i-1)+copy(S,i+1,MaxInt),Prefix+S[i]);
end;

PrintAll ("any text");


← →
Chuvak ©   (2005-11-20 20:00) [4]

TUser ©   (20.11.05 19:26) [3]
Спасибо, разобрался...
Насчёт трояна не смешно...


← →
Uncle Archi ©   (2005-11-20 21:09) [5]

Самый лучший вариант, по-моему таков.
Он не содержит рекурсии и легко понимается.
Хотя долго работает.

Допустим, у нас есть строка длиной 4.
Представим число 0123 в системе счисления(СС) с основанием 4, сопоставив каждому числу знак из строки.
Теперь начинаем увеличивать число по правилам соответствующей СС.
Если нет одинаковых чисел, -> следующая перестановка.
Например:

0123
0130 - не подходит
0131 - не подходит
0132 - следующая
0213
0231
....



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.035 c
3-1130232267
Ega23
2005-10-25 13:24
2005.12.11
could not produce a query plan from the optimizer - что это???


14-1132664084
Murkt
2005-11-22 15:54
2005.12.11
Нормализация матрицы по числу


2-1132759017
Fast2
2005-11-23 18:16
2005.12.11
Как по дате определить день недели?


6-1121692051
Соловьев
2005-07-18 17:07
2005.12.11
IMAP - тип папки на сервере


1-1131708902
VEZ
2005-11-11 14:35
2005.12.11
Перехват нашатия клавишь




   Наверх