Домой Учебники по Java и J2EE Как найти все перестановки строки в Java — пример

Как найти все перестановки строки в Java — пример

780
0

В математике понятие перестановки используется с несколькими слегка различающимися значениями, все они связаны с актом перестановки (перестановки) объектов или значений. Неформально, перестановка набора объектов — это расположение этих объектов в определенном порядке . Например, существует шесть перестановок множества {1,2,3}, а именно (1,2,3), (1,3,2), (2,1,3), (2,3,1) , (3,1,2) и (3,2,1).

Вот быстрый простой алгоритм, который вычисляет все перестановки строкового объекта в Java .

  • Сначала выньте первый символ из строки и переставьте остальные символы
  • Если строка = «123»
  • Первый символ = 1, а остальные комбинации — 23 и 32.
  • Теперь мы можем вставить первый символ в доступные позиции в перестановках.
  • 23 -> 123, 213, 231
  • 22 -> 132, 312, 321
CrunchifyMarmutationExample.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
пакет ком . crunchify. учебные пособия ;
Импортировать Java. Util. HashSet ;
Импортировать Java. Util. Установить ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyMarmutationExample {
общественности статический недействительным main ( Строка [ ] аргументы ) {
строка s знак равно Азбука ;
строка s1 знак равно EBAY ;
строка s2 знак равно «Yahoo» ;
Система. вне. println ( / nString + s + : / nPermutations: + crunchifyPermutation ( s ) ) ;
Система. вне. println ( / nString + s1 + : / nPermutations: + crunchifyPermutation ( s1 ) ) ;
Система. вне. println ( / nString + s2 + : / nPermutations: + crunchifyPermutation ( s2 ) ) ;
}
общественности статический Установить crunchifyPermutation ( String ул ) {
Установить crunchifyResult знак равно новый HashSet ( ) ;
если ( ул == ноль ) {
вернуть ноль ;
} еще если (Ул. Длина () == 0 ) {
crunchifyResult . добавить ( ) ;
вернуть crunchifyResult ;
}
голец firstChar знак равно ул . charAt ( 0 ) ;
строка рем знак равно ул . подстрока ( 1 ) ;
Установить слова знак равно crunchifyPermutation ( rem ) ;
за ( Строка NewString : слова ) {
за ( int я знак равно 0 ; я < = newString . длина ( ) ; я ++ ) {
crunchifyResult . добавить ( crunchifyCharAdd ( newString , firstChar , я ) ) ;
}
}
вернуть crunchifyResult ;
}
общественности статический строка crunchifyCharAdd ( String ул , голец с , ИНТ к ) {
строка первый знак равно ул . подстрока ( 0 , к ) ;
строка прошлой знак равно ул . подстрока ( j ) ;
вернуть первый + с + последний ;
}
}
Выход

1
2
3
4
5
6
7
8
строка ABC :
Перестановки : [ ACB , ABC , BCA , CBA , CAB , BAC ]
строка EBAY :
Перестановки : [ YBEA , EYAB , EBYA , ЯБЕ , ЯБ , БЕЯ , Эйба , BAEY , AYBE , ABYE , AEYB , AYEB , ABEY , Бея , YBAE , EBAY , EAYB , BYAE , AEBY , ГОД , ЕБА , BEAY , EABY , BAYE ]
строка Yahoo :
Перестановки : [ Хаооо , ооо , оооха , ууууу , ааао , Юха , Ой , оооо , Йоао , хаууу , HoaoY , оооа , Хао , привет , ааааа , ооо , ооо , да , ааааа , уууу , аааа , Яохо , ооооо , Юуа , Йохао , Йохоа , HoYao , оооой , ааааа , HoYoa , оооо , ооо , оооо , хоао , Yahoo , оооо , Йоао , ахё , hoaYo , ааааа , ахё , ооо , ооо , ааааа , ойахо , ооо , ааао , Дааа , оооо , оооо , Йоахо , Уууу , ооо , ооо , ууууу , ооо , Аааа , ояо , аххой , oaYho ]

Список всех учебных пособий по веб-разработке на Java .

Как найти все перестановки строки в Java — пример

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Как перебрать список Java? Пять (5) способов пройти через цикл в Java

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь