Programa Palindrome em Java | Programa Java para verificar o polindrome

Publicados: 2021-02-26

Índice

Introdução

Java ganhou muito destaque entre os programadores por causa de sua simplicidade, neutralidade de arquitetura, independência de plataforma, execução distribuída e reutilização. Além disso, o java tem muitas bibliotecas predefinidas para uma programação perfeita. E todos ficarão entusiasmados em codificar em tal linguagem.

Agora chegando ao nosso tópico, vamos escrever um código java para verificar se a entrada fornecida é um palíndromo ou não.

Diz-se que um número ou palavra é um palíndromo se permanecer o mesmo depois de invertido. E podemos implementar uma solução de forma iterativa e recursiva. Então vamos começar!

Código Java Iterativo

A ideia é simples; vamos declarar uma variável 'reverse' que armazena o número invertido de nossa entrada.

Multiplicaremos a variável reversa por 10 (para preencher a posição da unidade com 0) em cada iteração. Então, vamos somar o resto do número de entrada depois de dividi-lo por 10. Depois de somar o resto, vamos dividir o número de entrada por 10 (para remover o número na posição da unidade).

Pararemos o algoritmo acima quando o número de entrada se tornar 0, e o número presente na variável reversa será o inverso do número de entrada.

atualização de classe pública{

public static void main(String[] args) {

int n=12221;

int reverso=0;

int temp=n;

while(temp>0){

reverso=reverso*10;

reverso=reverso+temp%10;

temperatura=temperatura/10;

}

if(reverso==n)

System.out.print(n+” é um palíndromo”);

outro

System.out.print(n+” não é um palíndromo”);

}

}

No código acima, declaramos uma variável 'n' que armazena o número inicial, e temos que verificar se o número n é um palíndromo ou não. No loop while, seguiremos o algoritmo que discutimos anteriormente. E por fim, estamos verificando se o número invertido é igual ao número inicial ou não. Se o número alterado e os números iniciais forem semelhantes, estamos imprimindo-o como um palíndromo, não um palíndromo.

Agora, esse código funcionará apenas para uma entrada inteira. E se quisermos verificar se uma determinada palavra é um palíndromo ou não, temos que lidar com ela usando strings. E aqui está o código para fazer isso.

atualização de classe pública{

public static void main(String[] args) {

String s=”rotor”;

String reverse=new String();

for(int i=s.length()-1;i>=0;i–)

reverso=reverso+s.charAt(i);

if(s.igual(reverso))

System.out.print(s+” é um palíndromo”);

outro

System.out.print(s+” não é um palíndromo”);

}

}

No código acima, estamos anexando os caracteres da string inicial da cauda à cabeça para a string reversa e verificando se é igual à string inicial ou não. Codificamos a string com uma palavra, mas podemos inicializá-la com a entrada do usuário usando a classe scanner.

Código Java Recursivo

Nesta implementação, vamos comparar o primeiro e o último caractere. E se eles forem iguais, então se repita para a string restante.

Mas essa lógica não funcionará para as strings que possuem um número ímpar de caracteres. Então, se incluirmos um caso base, onde concluímos uma string como um palíndromo, se o comprimento de uma string for um, ou seja, a posição do primeiro e do último caractere é a mesma. Isso resolveria nosso problema com strings de tamanho ímpar, porque vamos recorrer ao elemento do meio e concluí-lo como um palíndromo, já que apenas um único caractere permanece no meio.

atualização de classe pública{

public static boolean isPalindrome(String str, int low, int high){

if(baixo==alto)

retorne verdadeiro;

if(str.charAt(baixo)!=str.charAt(alto))

retorna falso;

if(alto-baixo>1)

return isPalindrome(str,low+1,high-1);

retorne verdadeiro;

}

public static void main(String[] args) {

String s1=”rotor”;

String s2=”programação”;

System.out.println(isPalindrome(s1,0,s1.length()-1));

System.out.println(isPalindrome(s2,0,s2.length()-1));

}

}

No código acima, escrevemos uma função que espera uma string, dois inteiros como parâmetros. E os dois inteiros, baixo e alto, são os ponteiros que acompanham os caracteres que devem ser verificados. E se os nomes na posição baixa e alta forem iguais.

chamaremos a mesma função com parâmetros atualizados de forma que a string seja reduzida de ambos os lados por um caractere. E se os ponteiros baixo e alto se encontram ou um único caractere está presente entre eles, então chegamos até o meio da string e concluímos como um palíndromo.

Agora, vamos fazer uma simulação do código para a string “rotor”. Inicialmente, o mínimo é 0 e o máximo é 4. Como o caractere na 0ª posição ('r') é igual ao caractere na 4ª posição ('r'), faremos uma chamada recursiva com o mínimo atualizado como mínimo +1 e high atualizados como high-1.

Agora, baixo é 1 e alto é 3, já que os caracteres nessas posições são iguais, faremos novamente uma chamada recursiva. Agora, baixo é 2 e alto é 2, e aciona o caso base em que baixo é equivalente a alto, então retornaremos true.

Também podemos implementar uma função recursiva para verificar se um inteiro é um palíndromo ou não, e aqui está o processo para fazer isso.

static boolean isPalindrome(int n, int rev, int temp){

if(temp==0)

return n==revolução;

rev=rev*10;

return isPalindrome(n,rev+temp%10,temp/10);

}

Observe que, na função acima, inicialmente n e temp são os mesmos. Porque, finalmente, temos que comparar o número inverso com o número inicial, para que todos os cálculos sejam realizados na mesma variável. O número inicial não deve ser alterado.

Leia também: Ideias e tópicos do projeto Java

Aprenda cursos de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Entendemos a definição de palíndromo, percorremos códigos iterativos e recursivos para verificar se uma string/número é um palíndromo ou não. Conhecemos o código por uma simulação de exemplo. Agora que você está ciente da implementação de um código para verificar o palíndromo, tente implementá-lo usando a classe scanner e tente codificá-lo usando conceitos de OOP.

Se você deseja melhorar suas habilidades em Java, você precisa colocar as mãos nesses projetos Java. Se você estiver interessado em aprender mais sobre Java, desenvolvimento full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, que é projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, 9+ projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

O que é um palíndromo?

Frase palindrômica é uma composição literária, frase, verso ou palavra, lendo o mesmo para trás ou para frente. Um palíndromo é um tipo de jogo de palavras, especificamente uma palavra ou frase (frase) que lê o mesmo para trás ou para frente. Um palíndromo é uma palavra, frase, número ou outra sequência de caracteres que lê o mesmo para trás ou para frente. Por exemplo, Um homem, um plano, um canal, Panamá! é um palíndromo. Alguns palíndromos não são palavras, como o número 106601. Alguns palíndromos são frases, como Madame, eu sou Adam.

Como se preparar para uma entrevista Java?

Se você quer ser um especialista em Java, primeiro precisa ter certeza de que algumas coisas estão em ordem. Em primeiro lugar, você precisa ter um bom conhecimento prático da linguagem Java. Em segundo lugar, você deve ter um bom entendimento da API Java. Você não precisa ter um domínio absoluto da API, mas deve ter uma compreensão do que está disponível e quando usar qual classe. Finalmente, você precisa ter uma compreensão profunda da Java Virtual Machine. Por exemplo, você deve ser capaz de escrever um interpretador para uma linguagem simples. Se você está entrevistando para uma posição de desenvolvimento de compiladores, você está fora do gancho.

Como escrever bons programas Java?

Algumas das melhores práticas ao escrever o programa em java são: Sempre use 'classe pública' para iniciar a classe. Nunca use 'public static void main' dentro de uma classe. Nunca use a palavra-chave 'this' dentro da classe. Nunca use o modificador 'final' em métodos. Nunca use o modificador 'static' nas variáveis ​​de instância. Nunca torne as variáveis ​​'públicas' a menos que seja absolutamente necessário. Sempre tenha uma boa convenção de nomenclatura. Nunca faça uma variável com mais de uma letra com um sufixo numérico. Evite fazer variáveis ​​com mais de uma palavra. Nunca use a palavra-chave 'this' dentro do método. Nunca use a palavra-chave 'break'.