📌  相关文章
📜  Python – 字符串中的左右移位字符

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

Python – 字符串中的左右移位字符

有时,在使用Python字符串时,我们可能会遇到问题,即我们同时拥有 String 中字符的左右旋转计数,并且想知道 String 的结果条件。这类问题出现在竞争性编程中。让我们讨论可以执行此任务的某些方式。

方法#1:使用字符串乘法+字符串切片
上述功能的组合可用于执行此任务。在此,我们三次多重字符串,执行连接并选择性地对字符串进行切片以获得所需的结果。

# Python3 code to demonstrate working of 
# Right and Left Shift characters in String
# Using String multiplication + string slicing
  
# initializing string
test_str = 'geeksforgeeks'
  
# printing original string
print("The original string is : " + test_str)
  
# initializing right rot 
r_rot = 7
  
# initializing left rot 
l_rot = 3
  
# Right and Left Shift characters in String
# Using String multiplication + string slicing
res = (test_str * 3)[len(test_str) + r_rot - l_rot : 
                  2 * len(test_str) + r_rot - l_rot]
  
# printing result 
print("The string after rotation is : " + str(res)) 
输出 :
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek

方法 #2:使用 %运算符和字符串切片
上述功能的组合也可用于执行此任务。在此,我们找到旋转差异与长度的模来计算字符串位置。

# Python3 code to demonstrate working of 
# Right and Left Shift characters in String
# Using % operator and string slicing
  
# initializing string
test_str = 'geeksforgeeks'
  
# printing original string
print("The original string is : " + test_str)
  
# initializing right rot 
r_rot = 7
  
# initializing left rot 
l_rot = 3
  
# Right and Left Shift characters in String
# Using % operator and string slicing
temp = (r_rot - l_rot) % len(test_str)
res = test_str[temp : ] + test_str[ : temp]
  
# printing result 
print("The string after rotation is : " + str(res)) 
输出 :
The original string is : geeksforgeeks
The string after rotation is : sforgeeksgeek