Programa Javascript para verificar si se puede obtener una string rotando otra string 2 lugares

Dadas dos strings, la tarea es encontrar si se puede obtener una string rotando otra string dos lugares. 

Ejemplos: 

Entrada : string1 = «amazon», string2 = «azonam» 
Salida: Sí 
// girado en sentido antihorario
Entrada : string1 = «amazon», string2 = «onamaz» 
Salida : Sí 
// girado en sentido horario

Preguntado en : Amazon Entrevista

1- There can be only two cases:
    a) Clockwise rotated
    b) Anti-clockwise rotated

2- If clockwise rotated that means elements
   are shifted in right.
   So, check if a substring[2.... len-1] of 
   string2 when concatenated with substring[0,1]
   of string2 is equal to string1. Then, return true.

3- Else, check if it is rotated anti-clockwise 
   that means elements are shifted to left.
   So, check if concatenation of substring[len-2, len-1]
   with substring[0....len-3] makes it equals to
   string1. Then return true.

4- Else, return false.

A continuación se muestra la implementación del enfoque anterior.

Javascript

<script>
// Javascript program to check if a
// string is two time rotation of 
// another string.
      
// Method to check if string2 is 
// obtained by string 1
function isRotated(str1, str2)
{
    if (str1.length != str2.length)
        return false;
          
    if (str1.length < 2)
    {
        return str1.localeCompare(str2);
    }
    
    let clock_rot = "";
    let anticlock_rot = "";
    let len = str2.length;
    
    // Initialize string as anti-clockwise 
    // rotation
    anticlock_rot = anticlock_rot +
                    str2.substring(len - 2, 
                                   len + 1) +
                    str2.substring(0, len - 1) ;
    
    // Initialize string as clock wise rotation
    clock_rot = clock_rot +
                str2.substring(2, str2.length - 
                               2 + 1) +
                str2.substring(0, 2 + 1);
    
    // Check if any of them is equal   
    // to string1
    return (str1.localeCompare(clock_rot) ||
            str1.localeCompare(anticlock_rot));
}
  
// Driver code
let str1 = "geeks";
let str2 = "eksge";
document.write(isRotated(str1, str2) ?  
               "Yes" : "No");
// This code is contributed by rag2127
</script>

Producción: 

Yes

Consulte el artículo completo sobre Comprobar si se puede obtener una string girando otra string 2 lugares 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *