Dado un entero x , la tarea es encontrar si cada cambio de ciclo k en el elemento produce un número mayor o igual que el mismo elemento.
Un desplazamiento k-cíclico de un entero x es una función que elimina los últimos k dígitos de x y los inserta en su comienzo.
Por ejemplo, los cambios k-cíclicos de 123 son 312 para k=1 y 231 para k=2 . Imprima Sí si se cumple la condición dada; de lo contrario, imprima No.
Ejemplos:
Entrada: x = 123
Salida: Sí
Los desplazamientos k-cíclicos de 123 son 312 para k=1 y 231 para k=2.
Tanto 312 como 231 son mayores que 123.
Entrada: 2214
Salida: No
El cambio cíclico k de 2214 cuando k=2 es 1422, que es menor que 2214
Enfoque: simplemente encuentre todos los k cambios cíclicos posibles del número y verifique si todos son mayores que el número dado o no.
A continuación se muestra la implementación del enfoque anterior:
Python
# Python3 implementation of the approach def CheckKCycles(n, s): ff = True for i in range(1, n): # Splitting the number at index i # and adding to the front x = int(s[i:] + s[0:i]) # Checking if the value is greater than # or equal to the given value if (x >= int(s)): continue ff = False break if (ff): print("Yes") else: print("No") n = 3 s = "123" CheckKCycles(n, s)
Yes
Complejidad de tiempo: O(N 2 ), donde N representa la longitud de la string dada.
La complejidad temporal del programa es O(N 2 ) porque primero ejecuta un ciclo para atravesar la string y dentro de esa función de substring se usa.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.
¡ Consulte el artículo completo sobre Comprobar si todas las rotaciones de un número dado son mayores o iguales que el número dado o no para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA