📅  最后修改于: 2023-12-03 14:55:48.831000             🧑  作者: Mango
当我们需要判断一个字符串是否通过左右移动的方式变成了另一个字符串时,我们可以通过一些方法来实现。
我们可以先将原始字符串拼接一次,再查看目标字符串是否在拼接后的字符串中。如果是,说明目标字符串通过左右移动可以得到原始字符串。
def is_left_right_shifted(original_str: str, target_str: str) -> bool:
if len(original_str) != len(target_str):
return False
shifted_str = original_str + original_str
return target_str in shifted_str
我们可以从目标字符串的任意一个位置开始,“循环移位”一遍生成新的字符串,然后判断该新字符串是否与原始字符串相同。如果是,说明目标字符串通过左右移动可以得到原始字符串。
def is_left_right_shifted(original_str: str, target_str: str) -> bool:
if len(original_str) != len(target_str):
return False
for i in range(len(target_str)):
shifted_str = target_str[i:] + target_str[:i]
if shifted_str == original_str:
return True
return False
本文介绍了两种方法来判断一个字符串是否通过左右移动的方式变成了另一个字符串。两种方法各有优缺点,可以依据实际需求来选择使用。