Python中的字符串切片以旋转字符串
给定一个大小为 n 的字符串,编写函数以对字符串执行以下操作。
- 向左(或逆时针)将给定的字符串旋转 d 个元素(其中 d <= n)。
- 向右(或顺时针)将给定的字符串旋转 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中使用字符串切片快速解决这个问题。方法很简单,
- 将字符串分成first 和 second两部分,用于左旋转Lfirst = str[0 : d] 和 Lsecond = str[d :]。对于右旋转Rfirst = str[0 : len(str)-d] 和 Rsecond = str[len(str)-d : ]。
- 现在相应地连接这两个部分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