स्ट्रिंग को दो नॉन-एम्प्टी पार्ट्स p, q में स्प्लिट करें जहां डिस्टिंक्ट कैरेक्टर्स की संख्या बराबर हो। ऐसे स्प्लिट्स काउंट करें।
एल्गोरिदम
leftऔरrightकाउंटर्स (Counter) मेंटेन करें।- प्रत्येक कैरेक्टर c के लिए:
left[c]++,right[c]--। - अगर
right[c] == 0तो डिलीट करें। - अगर
len(left) == len(right)तोresult++।
उदाहरण कोड
from collections import Counter
def solve(s):
result = 0
left, right = Counter(), Counter(s)
for c in s:
left[c] += 1
right[c] -= 1
if not right[c]:
del right[c]
if len(left) == len(right):
result += 1
return result
# टेस्ट: s="xxzxyx" -> गुड स्प्लिट्स: ("xxz","xyx"), ("xxzx","yx") -> आउटपुट: 2
इनपुट/आउटपुट
इनपुट: "xxzxyx"
आउटपुट: 2