#!/bin/python3
import math
import os
import random
import re
import sys
'''
# Complete the substrCount function below.
def substrCount(n, s):
#每个单独字符
result=n
#连续两个,三个,,,n个字符相同
for m in range(2,n):
for i in range(n-m+1):
if len(set(s[i:i+m]))==1:
result+=1
#连续三个,五个,,,最中间与其他不同
if n%2==0:
k=n-1
else:
k=n
for m in range(3,k+2,2):
for i in range(n-m+1):
if len(set(s[i:i+m]))==2 and len(set(s[i:i+m//2]))==1 and len(set(s[(i+m//2+1):(i+m)]))==1 and s[i]==s[i+m-1]:
result+=1
return result
'''
import itertools
def substrCount(n, s):
l = []
for k, g in itertools.groupby(s):
l.append((k,len(list(g))))
count=0
#连续子集的组合
for i in l:
count += (i[1] * (i[1] + 1)) // 2
#两边的字母如果相同则,且之间的字母只有一个
for i in range(1, len(l) - 1):
if l[i - 1][0] == l[i + 1][0] and l[i][1] == 1:
count += min(l[i - 1][1], l[i + 1][1])
return count
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input())
s = input()
result = substrCount(n, s)
fptr.write(str(result) + '\n')
fptr.close()
String Manipulation:Special String Again
猜你喜欢
转载自blog.csdn.net/weixin_45405128/article/details/104214214
今日推荐
周排行