1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Sequenciar Strings

Olá pessoal, tenho um exercício de String para fazer, mas não consegui encontrar a lógica correta.

Dado um conjunto de strings, o sistema deve calcular o tamanho da maior sequência que pode ser produzida com as seguintes restrições. A sequência de strings precisa ter a seguinte propriedade:

  • Se Si aparece imediatamente antes de Si + 1 na sequência, então Si - 1 é uma string que pode ter crescido a partir de Si (ou seja, Si é uma substring contígua de Si + 1).
    • Não é permitido haver strings repetidas no conjunto de strings analisadas, portanto todas as strings na sequência devem ser diferentes.

Para cada conjunto de strings, o sistema deve apresentar um número inteiro representando o tamanho da maior sequência de strings que pode ser produzida, bem como a sequência.

Ex: Entrada :[a, atn, ant, antt, an, antes, ante, ateees]Saída :a -> an -> ant -> ante -> antes. Maior sequencia: 6

O que consegui fazer:

    public static ArrayList verificarStrings(ArrayList<String> arrayDeStrings) {

        ArrayList<String> arrayDeSequencia = new ArrayList<String>();        
        int cont = 0;
        int valorMaximo = 0;
        for (int i = 0; i < 10; i++) {            
            arrayDeStrings.add(JOptionPane.showInputDialog(null, "Digite a " + i + "ª String: ",
                    JOptionPane.PLAIN_MESSAGE));
        }
        for (int k = 0; k < arrayDeStrings.size(); k++) {
            for (int j = 0; j < arrayDeStrings.size() - 1; j++) {
                if (arrayDeStrings.get(j + 1).contains(arrayDeStrings.get(j))) {
                    arrayDeSequencia.add(arrayDeStrings.get(j));
                    cont++;
                }
            }
            if (cont > valorMaximo) {
                valorMaximo = cont;
            } else {
                cont = 0;
            }
        }
        System.out.println(Arrays.toString(arrayDeSequencia.toArray()));
        System.out.println(cont);

        return arrayDeStrings;
    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags arraylist java string ou faça a sua própria pergunta.