📌  相关文章
📜  检查是否将任何字符串左右移动到给定的字符串(1)

📅  最后修改于: 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
总结

本文介绍了两种方法来判断一个字符串是否通过左右移动的方式变成了另一个字符串。两种方法各有优缺点,可以依据实际需求来选择使用。