程序在Python中查找具有i,j和k的x,y,z字母个数的子序列数
假设我们有一个带有“x”,“y”和“z”的字符串s,我们必须找到具有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,执行
z:=z*2
z:=z+y
y:=y*2
y:=y+x
x:=x*2
x:=x+1
计数:=0
如果s[i]与“x”相同,则
如果s[i]与“y”相同,则
如果s[i]与“z”相同,则
返回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