Como funciona...?

0 respostas
edymrex

Estou quebrando a cabeça pra enteder como um programa que faz a permutação de String funciona alguém pode me explicar vo deixar o código logo abaixo

import java.util.Scanner;

public class PermutationTest
{  
   public static void main( String args[] )
   {
      Scanner scanner = new Scanner( System.in );
      Permutation permutationObject = new Permutation();

      System.out.print( "Enter a string: " );
      String input = scanner.nextLine(); // recupera String a permutar

      // permuta String 
      permutationObject.permuteString( "", input );
   } // fim de main
} // fim da classe PermutationTest
public class Permutation
{
   // declaração recursiva do método permuteString 
   public void permuteString(
      String beginningString, String endingString )
   {
      // caso básico: se string a permutar tiver comprimento menor que ou igual a
      // 1, exibe apenas essa string concatenada com beginningString
      if ( endingString.length() <= 1 )
         System.out.println( beginningString + endingString );
      else // passo de recursão: permuta endingString
      {
         // para cada caractere em endingString
         for ( int i = 0; i < endingString.length(); i++ )
         {
            try
            {
               // cria nova string para permutar eliminando o
               // caractere no índice i
               String newString = endingString.substring( 0, i ) +
                  endingString.substring( i + 1 );                

               // chamada recursiva com uma nova string a ser permutada
               // e uma string inicial a ser concatenada, que
               // inclui o caractere no índice i
               permuteString( beginningString +         
                  endingString.charAt( i ), newString );
            } // fim do try
            catch ( StringIndexOutOfBoundsException exception )
            {
               exception.printStackTrace();
            } // fim do catch
         } // for final
      } // fim de else
   } // fim do método permuteString
} // fim da classe Permutation
Criado 9 de outubro de 2006
Respostas 0
Participantes 1