📌  相关文章
📜  给定三元字符串中至少包含一次字符的子字符串计数(1)

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

给定三元字符串中至少包含一次字符的子字符串计数

这个问题可以用暴力枚举的方法来解决。我们可以枚举所有可能的子串,然后检查它是否包含给定的三元字符串中的至少一个字符。如果是,则计数器加一。最后返回计数器的值即可。

代码示例:

def count_substrings(s: str, t: str, u: str) -> int:
    count = 0
    for i in range(len(s)):
        for j in range(i+1, len(s)+1):
            substring = s[i:j]
            if all(c in substring for c in [t, u]):
                count += 1
    return count

代码说明:

  • s 是原字符串;
  • tu 是要包含的三元字符串中的两个字符;
  • count 是计数器,记录满足条件的子串数量;
  • 外层循环枚举子串的起始位置 i,内层循环枚举子串的终止位置 j。注意,这里的 range 函数中的终止位置需要加一。这样可以枚举到最后一个字符。
  • 根据起始位置和终止位置可以得到当前的子串 substring
  • 使用 all 函数检查当前子串是否包含给定的三元字符串中的两个字符。如果是,则计数器加一。
  • 循环结束后,返回计数器的值。