Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Parole palindrome

  1. #1

    Parole palindrome

    Ciao a tutti raga, avrei bisogno di un aiuto su questo problema: Data in input (da console) una parola dire se è palindroma. Io sono arrivato fin qui poi non so più come continuare, mi aiutate per favore? Grazie in anticipo.

    codice:
    package palindroma;
    import java.util.Scanner;
    public class palindroma {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Scanner in=new Scanner(System.in);
      String parola;
      System.out.println("Inserisci una parola");
      parola=in.nextLine();
      int c;
      for(int i=parola.length()-1;i>=0;i--)
      {
       c=parola.charAt(i);
       if(parola==)
       {
        
       }
      }
     }
    }

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao, spezza il controllo tra stringhe di lunghezza pari e stringhe di lunghezza dispari. Poi controlli il primo carattere con l'ultimo, il secondo con il penultimo, ecc. fino ad arrivare a metà parola. Appena ne trovi uno diverso puoi concludere che non è palindroma; se invece sono tutti uguali allora è palindroma. Nota che se un carattere ha indice i allora il suo "corrispondente" leggendo la parola al contrario ha indice "length()-1-i".

    Se invece non ti interessa ottimizzare, allora puoi evitare di dividere tra stringhe di lunghezza pari e dispari: controlli tutti i caratteri e basta.


  3. #3
    Quindi in java come dovrei fare per paragonare il primo carattere con l'ultimo ecc.?

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ma te l'ho scritto: prendi il carattere in posizione "i" e lo confronti con quello in posizione "lunghezzaStringa-1-i". Per prendere il singolo carattere utilizzi il metodo charAt, che vedo conosci già.

  5. #5
    Ho risolto così. Grazie per l'aiuto.

    codice:
    package palindroma;
    import java.util.Scanner;
    public class palindroma {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Scanner in=new Scanner(System.in);
      String parola;
      String inversa="";
      System.out.println("Inserisci una parola");
      parola=in.nextLine();
      for(int i=parola.length()-1;i>=0;i--)
      {
       inversa=inversa+parola.charAt(i);
      }
      if (parola.equals(inversa))
      {
              System.out.println("La parola è palindroma");
      }
           else
           {
              System.out.println("La parola non è palindroma");
           }
      
      
     }
    }

  6. #6
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ok, va bene anche così. Non è efficiente (concatenazione di caratteri senza StringBuilder, creazione di un'altra stringa non necessaria, ecc.) ma produce il risultato corretto.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.