Programa de Python para encontrar el número mínimo de rotaciones para obtener una string real

Dadas dos strings s1 y s2. La tarea es averiguar el número mínimo de rotaciones de string para la string dada s1 para obtener la string real s2.

Ejemplos:

Input : eeksg, geeks
Output: 1 
Explanation: g is rotated left to obtain geeks.

Input : eksge, geeks
Output: 2
Explanation : e and g are left rotated to obtain geeks.

Acercarse:

  • Use el corte de cuerdas para rotar la cuerda.
  • Realice rotaciones a la derecha str1=str1[1:len(str1)]+str1[0]en la string para obtener la string real.
  • Realice rotaciones a la izquierda m=m[len(m)-1]+m[:len(m)-1]en la string para obtener la string real.
  • Imprime el mínimo de rotaciones izquierda (x) y derecha (y).

COMPLEJIDAD DE TIEMPO: O(n)

A continuación se muestra la implementación:

def findRotations(str1, str2):
      
    # To count left rotations 
    # of string
    x = 0
      
    # To count right rotations
    # of string
    y = 0
    m = str1
      
    while True:
          
        # left rotating the string
        m = m[len(m)-1] + m[:len(m)-1] 
          
        # checking if rotated and 
        # actual string are equal.
        if(m == str2):
            x += 1
            break
              
        else:
            x += 1
            if x > len(str2) :
                break
   
    while True:
          
        # right rotating the string
        str1 = str1[1:len(str1)]+str1[0] 
          
        # checking if rotated and actual
        # string are equal.
        if(str1 == str2):
            y += 1
            break
              
        else:
            y += 1
            if y > len(str2):
                break
                  
    if x < len(str2):
          
        # printing the minimum
        # number of rotations.
        print(min(x,y))
          
    else:
        print("given strings are not of same kind")
          
# Driver code
findRotations('sgeek', 'geeks')
Producción:

1

Publicación traducida automáticamente

Artículo escrito por MANIKANTA2 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 *