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:
PHP
<?php // PHP implementation of the approach function CheckKCycles($n, $s) { $ff = true; $x = 0; for ($i = 1; $i < $n; $i++) { // Splitting the number at index i // and adding to the front $x = strlen(substr($s, $i).substr($s, 0, $i)); // Checking if the value is greater than // or equal to the given value if ($x >= strlen($s)) { continue; } $ff = false; break; } if ($ff) { print("Yes"); } else { print("No"); } } // Driver code $n = 3; $s = "123"; CheckKCycles($n, $s); // This code contributed by mits ?>
Yes
Complejidad de tiempo: O(N 2 ), donde N es la longitud de la string dada. Primero ejecuta un ciclo para atravesar la string y dentro de esa función de substring se usa. Entonces, el código se ejecutará en tiempo O(N 2 ).
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