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