[Preguntas de pincel de Leetcode] Algoritmo: número de palíndromo

1. Introducción al tema

inserte la descripción de la imagen aquí

2. Código de combate

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0:
            return False
        x_str = str(x)
        left = 0
        right = len(x_str) - 1
        while left < right:
            if x_str[left] != x_str[right]:
                return False
            left += 1
            right -= 1
        return True 
  1. clase Solución:: define una clase llamada Solución.
  2. def isPalindrome(self, x: int) -> bool:: define un método llamado isPalindrome, que acepta un entero x como parámetro y devuelve un valor booleano que indica si es un palíndromo.
  3. if x < 0:: Si x es un número negativo, devuelve Falso directamente, porque un número negativo no puede ser un palíndromo.
  4. x_str = str(x): convierte el entero x en una cadena para su posterior comparación.
  5. izquierda = 0 y derecha = len(x_str) - 1: inicializa los punteros izquierdo y derecho, la izquierda apunta al principio de la cadena, la derecha apunta al final de la cadena.
  6. while left < right:: ingrese al ciclo, la condición del ciclo es que el puntero izquierdo es más pequeño que el puntero derecho, es decir, no se ha comparado la cadena completa.
  7. if x_str[left] != x_str[right]:: Si el carácter señalado por el puntero izquierdo no es igual al carácter señalado por el puntero derecho, significa que no es un palíndromo y devuelve False directamente.
  8. izquierda += 1 y derecha -= 1: Mueva el puntero izquierdo un bit a la derecha y el puntero derecho un bit a la izquierda respectivamente, y continúe comparando el siguiente carácter.
  9. Una vez que finaliza el bucle, significa que se completa la comparación de toda la cadena, no se encuentran caracteres desiguales y se devuelve True, lo que indica que es un palíndromo.

Este código convierte el número entero en una cadena y luego usa el método de doble puntero para comparar desde ambos extremos de la cadena hasta el medio para determinar si es un palíndromo. Si se encuentran caracteres desiguales durante la comparación, se devuelve False directamente, de lo contrario, finalmente se devuelve True, lo que indica que se trata de un número palíndromo.

Los resultados se muestran de la siguiente manera:

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/wzk4869/article/details/130733339
Recomendado
Clasificación