Dada una cadena, verifique que sea una cadena de palíndromo, considerando solo caracteres alfabéticos y numéricos, puede ignorar el caso de las letras.
Explicación: En esta pregunta, definimos una cadena vacía como una cadena de palíndromo válida.
Ejemplo 1:
Entrada: "Un hombre, un plan, un canal: Panamá"
Salida: verdadero
Ejemplo 2:
Entrada: "correr un auto"
Salida: falso
Enlace: https://leetcode-cn.com/problems/valid-palindrome.
Principalmente analice la diferencia entre el código de otras personas y mi código, vaya primero al mío
public boolean isPalindrome (String s) { if (s.length () == 0) return true ; String str = "" ; for ( int i = 0; i <s.length (); i ++ ) { if (('a' <= s.charAt (i) && s.charAt (i) <= 'z') || ('A' <= s.charAt (i) && s.charAt (i) <= 'Z' ) || ('0' <= s.charAt (i) && s.charAt (i) <= '9' )) { str + = s.charAt (i); } } Cadena str1 = str. toLowerCase (); System.out.println (str1); int len = str1.length (); para ( int i = 0, j = len-1; i <len / 2; i ++, j-- ) { if (str1.charAt (i)! = str1.charAt (j)) { return false ; } } return true ; }
El siguiente es el código del hermano mayor.
public boolean isPalindrome (String s) { String str = s.toLowerCase (); StringBuilder sb = new StringBuilder (); for ( char c: str.toCharArray ()) { if (Character.isLetterOrDigit (c)) sb.append (c); } return sb.toString (). equals (sb.reverse (). toString ()); }