A veces, tenemos una aplicación para verificar que un número sea palíndromo o no y es bastante común durante la programación diaria o la programación competitiva, es fácil invertir un número y verificarlo, pero a veces para facilitar la lectura y reducir las líneas de código, necesitamos realizar esto en lógica de una sola línea. Analicemos ciertas formas en que esto se puede lograr.
Entrada: test_number = 12321
Salida: VerdaderoEntrada: test_number = 1234
Salida: Falso
Método #1: Usar math.log()
+ recursividad + comprensión de listas
La combinación de las tres funciones anteriores puede realizar esta tarea en particular fácilmente, la función de registros extrae el número de dígitos que se potencia con 10 para obtener el número de esa iteración para comparar. El proceso se repite para probar el palíndromo.
# Python3 code to demonstrate # checking a number is palindrome # using math.log() + recursion + list comprehension import math # the recursive function to reverse def rev(num): return int(num != 0) and ((num % 10) * \ (10**int(math.log(num, 10))) + \ rev(num // 10)) # initializing number test_number = 9669669 # printing the original number print ("The original number is : " + str(test_number)) # using math.log() + recursion + list comprehension # for checking a number is palindrome res = test_number == rev(test_number) # printing result print ("Is the number palindrome ? : " + str(res))
The original number is : 9669669 Is the number palindrome ? : True
Método n.º 2: usar str()
el corte de strings +
Esto también se puede hacer convirtiendo el número en una string y luego invirtiéndolo usando el método de corte de strings y comparándolo, cuya verdad devuelve la respuesta.
# Python3 code to demonstrate # checking a number is palindrome # using str() + string slicing # initializing number test_number = 9669669 # printing the original number print ("The original number is : " + str(test_number)) # using str() + string slicing # for checking a number is palindrome res = str(test_number) == str(test_number)[::-1] # printing result print ("Is the number palindrome ? : " + str(res))
The original number is : 9669669 Is the number palindrome ? : True
También podemos leer la entrada como una string y luego simplemente verificar el palíndromo.
num = input("Enter a number") if num == num[::-1]: print("Yes its a palindrome") else: print("No, its not a palindrome")
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA