使用Python查找分割字符串的好方法的数量的程序
假设我们有一个字符串s。现在,当我们可以将s拆分为2个非空字符串p和q且它们的连接等于s且p和q中不同字母的数量相等时,我们称分割为好的。我们必须找到可以在s中进行的好的分割数量。
因此,如果输入值为s =“ xxzxyx”,则输出值为2,因为有多种分割方式,但如果我们像(“xxz”,“xyx”)或(“xxzx”,“yx”)那样分割它们是好的。
要解决此问题,我们将按以下步骤进行−
- result:= 0
-
left:计算“项”频率的空mal
-
right:计算s中出现的每个字符的频率
-
对于s中的每个c,执行以下操作
- left[c]:= left[c]+1
-
right[c]:= right[c]-1
-
如果right[c]为零,则
- 删除right[c]
- 如果左侧的大小与右侧的大小相同,则
- result:= result+1
- 返回结果
让我们看看以下实现,以获得更好的理解−
例
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”
print(solve(s))
输入
“ xxzxyx”
输出
2