Este artigo apresenta o problema do Java implementando o arranjo e a combinação de strings para sua referência. O conteúdo específico é o seguinte
importar java.util.arraylist; importar java.util.Collections; /*** Digite uma string e imprima todos os arranjos de caracteres na string na ordem do dicionário. Por exemplo, insira a string ABC e imprima todas as cordas ABC, ACB, BAC, * BCA, CAB e CBA que podem ser organizadas pelos caracteres A, B, C. * * @Author Pomay * */ public class Solution_stringArrange {public ArrayList <String> Permutação (String str) {if (str == null) retorna null; ArrayList <String> list = new ArrayList <String> (); char [] pstr = str.toCharArray (); Permutação (pstr, 0, lista); Coleções.Sort (Lista); lista de retorno; } Permutação de void estático (char [] str, int i, ArrayList <String> list) {// se vazio if (str == null) return; // se eu apontar para o último caractere se (i == str.Length - 1) {if (list.contains (string.valueof (str))) retornar; list.add (string.valueof (str)); } else {// i aponta para o primeiro caractere da string atualmente fazendo a operação de permutação para (int j = i; j <str.length; j ++) {// troca o primeiro caractere da sequência que faz a operação de permutação com todos os seguintes caracteres char temp = str [j]; str [j] = str [i]; str [i] = temp; // Após a troca, execute um arranjo recursivo das cordas após eu. Permutação (str, i + 1, lista); // Após o término de cada rodada, volte para executar a próxima rodada do arranjo temp = str [j]; str [j] = str [i]; str [i] = temp; }}} public static void main (string [] args) {string str = "aab"; Solution_stringArrange Changestring = new Solution_stringRange (); ArrayList <String> list = Changestring.permuation (STR); for (int i = 0; i <list.size (); i ++) {System.out.print (list.get (i)+""); }}} combinação:
Selecione o primeiro caractere na sequência de comprimento n e selecione os caracteres M-1 nas seqüências restantes do comprimento n-1 ou não selecione o primeiro caractere na sequência de comprimento n e selecione M caracteres nas cordas restantes do comprimento n-1
importar java.util.arraylist; importar java.util.list; /*** Digite uma string e imprima todas as combinações de caracteres na string na ordem do dicionário. Por exemplo, insira a string ABC, imprima todas as cordas A, B, C, AB, AC, BC *, ABC. Pergunta para encontrar a combinação de N caracteres com comprimento m * * @author pomay * */ public class Solution_stringCombination {// Encontre a combinação de todos os caracteres em uma string ABC> A, B, C, AB, AC, AC, BC, ABC public Static Void Perm (S) {List <Stress = Result = New Arraylist <String> (); // comece com um para (int i = 1; i <= s.length (); i ++) {combinação (s, i, resultado); }} // Selecione M caracteres da String S Public Static Void Combination (String S, Int M, List <String> Result) {// Se m == 0, então as extremidades recursivas. Resultado da corrente de saída if (m == 0) {for (int i = 0; i <resultado.size (); i ++) {System.out.print (resultado.get (i)); } System.out.print (","); retornar; } if (s.Length ()! = 0) {// Selecione o resultado do elemento atual.Add (S.Charat (0) + ""); // Uso da substring, intercepte a combinação de string de 1 a final da combinação N (S.Substring (1, S.Length ()), M - 1, resultado); resultado.remove (resultado.size () - 1); // Não selecione a combinação atual de elementos (s.substring (1, s.length ()), m, resultado); }} public static void main (string [] args) {string str = "abc"; perm (str); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.