Python程序:查找包含i个x、j个y和k个z字符的子序列个数
假设我们有一个字符串s,其中包含“x”、“y”和“z”,我们需要找到有多少个子序列包含i个“x”字符,后面跟着j个“y”字符,再后面跟着k个“z”字符,其中i、j、k ≥ 1。
例如,如果输入是s = "xxyz",则输出为3,因为我们可以构成两个"xyz"和一个"xxyz"。
为了解决这个问题,我们将遵循以下步骤:
n := s的长度
x := 0, y := 0, z := 0
对于范围0到n的i,执行:
count := 0
如果s[i]等于“x”,则:
x := x * 2
x := x + 1
如果s[i]等于“y”,则:
y := y * 2
y := y + x
如果s[i]等于“z”,则:
z := z * 2
z := z + y
返回z
示例
class Solution:
def solve(self, s):
n = len(s)
x = 0
y = 0
z = 0
for i in range(n):
count = 0
if s[i] == "x":
x *= 2
x += 1
if s[i] == "y":
y *= 2
y += x
if s[i] == "z":
z *= 2
z += y
return z
ob = Solution()
print(ob.solve("xxyz"))输入
"xxyz"
输出
3
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP