मान लीजिए हमारे पास "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
- i को 0 से n-1 तक रेंज में, करें
- 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