📜  Python中的字符串切片以旋转字符串

📅  最后修改于: 2022-05-13 01:55:22.339000             🧑  作者: Mango

Python中的字符串切片以旋转字符串

给定一个大小为 n 的字符串,编写函数以对字符串执行以下操作。

  1. 向左(或逆时针)将给定的字符串旋转 d 个元素(其中 d <= n)。
  2. 向右(或顺时针)将给定的字符串旋转 d 个元素(其中 d <= n)。

例子:

Input : s = "GeeksforGeeks"
        d = 2
Output : Left Rotation  : "eksforGeeksGe" 
         Right Rotation : "ksGeeksforGee"  


Input : s = "qwertyu" 
        d = 2
Output : Left rotation : "ertyuqw"
         Right rotation : "yuqwert"

我们有解决此问题的现有解决方案,请参阅字符串的左旋转和右旋转链接。我们将在Python中使用字符串切片快速解决这个问题。方法很简单,

  1. 将字符串分成first 和 second两部分,用于左旋转Lfirst = str[0 : d] 和 Lsecond = str[d :]。对于右旋转Rfirst = str[0 : len(str)-d] 和 Rsecond = str[len(str)-d : ]。
  2. 现在相应地连接这两个部分second + first
# Function to rotate string left and right by d length 
  
def rotate(input,d): 
  
    # slice string in two parts for left and right 
    Lfirst = input[0 : d] 
    Lsecond = input[d :] 
    Rfirst = input[0 : len(input)-d] 
    Rsecond = input[len(input)-d : ] 
  
    # now concatenate two parts together 
    print ("Left Rotation : ", (Lsecond + Lfirst) )
    print ("Right Rotation : ", (Rsecond + Rfirst)) 
  
# Driver program 
if __name__ == "__main__": 
    input = 'GeeksforGeeks'
    d=2
    rotate(input,d) 

输出:

Left Rotation  : eksforGeeksGe 
Right Rotation : ksGeeksforGee