📌  相关文章
📜  检查一个字符串由两个 K 长度的非重叠子串组成作为字谜(1)

📅  最后修改于: 2023-12-03 15:40:31.911000             🧑  作者: Mango

检查一个字符串由两个 K 长度的非重叠子串组成

这个字谜要求我们判断一个字符串是否是由两个长度为 K 的非重叠子串组成。

解决方法

我们可以使用 Python 的字符串切片来解决这个问题。具体的做法是,我们首先判断字符串的长度是否符合要求,即字符串长度为 2K。如果不符合要求,我们就直接返回 False。

def check_string(s: str, k: int) -> bool:
    if len(s) != 2 * k:
        return False

接下来,我们可以把原字符串分割成两个长度为 K 的字符串,并检查这两个字符串是否重叠。如果重叠了,我们就返回 False。如果没有重叠,我们就返回 True。

    a = s[:k]
    b = s[k:]

    if a == b:
        return False

    return True
完整代码
def check_string(s: str, k: int) -> bool:
    if len(s) != 2 * k:
        return False

    a = s[:k]
    b = s[k:]

    if a == b:
        return False

    return True
使用示例

以下是一个使用示例:

>>> check_string("abcdabcd", 4)
True
>>> check_string("abcdabdc", 4)
False