Python3程序检查是否可以通过将另一个字符串旋转2个位置来获得一个字符串
给定两个字符串,任务是找出是否可以通过将另一个字符串旋转两个位置来获得一个字符串。
例子:
Input: string1 = “amazon”, string2 = “azonam”
Output: Yes
// rotated anti-clockwise
Input: string1 = “amazon”, string2 = “onamaz”
Output: Yes
// rotated clockwise
提问:亚马逊面试
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.
下面是上述方法的实现。
Python3
# Python 3 program to check if a string
# is two time rotation of another string.
# Function to check if string2 is
# obtained by string 1
def isRotated(str1, str2):
if (len(str1) != len(str2)):
return False
if(len(str1) < 2):
return str1 == str2
clock_rot = ""
anticlock_rot = ""
l = len(str2)
# Initialize string as anti-clockwise
# rotation
anticlock_rot = (anticlock_rot +
str2[l - 2:] +
str2[0: l - 2])
# Initialize string as clock wise
# rotation
clock_rot = clock_rot + str2[2:] + str2[0:2]
# check if any of them is equal to string1
return (str1 == clock_rot or
str1 == anticlock_rot)
# Driver code
if __name__ == "__main__":
str1 = "geeks"
str2 = "eksge"
if isRotated(str1, str2):
print("Yes")
else:
print("No")
# This code is contributed by ita_c
输出:
Yes
请参阅完整的文章检查是否可以通过将另一个字符串旋转 2 个位置来获得一个字符串以获取更多详细信息!