蓝桥杯 省赛题 子串分值

图片说明

思路

首先构造函数,函数的功能为,求出一串字符串中只出现一次的字符的个数。
然后把每个字符串的子串都带入函数,求出的个数再进行相加。

代码

n = input()
l = []
for i in n:
  l += i
def S(l): # 求出字符串中只出现一次的字符的个数
# 把每一个字符都添加到一个空列表中
# 如果列表中没有此字符,则加入列表
# 如果列表中有此字符,则删掉列表中字符
# 最后列表的长度便是字符串只出现一次的字符的个数
  res = []
  for i in l:
    if i in res:
      res.remove(i)
    else:
      res.append(i)
  return len(res)
count = 0
# 把每一个字串都带入函数计算
for i in range(1, len(l)+1):
  cur = 0
  pre = cur + i
  while pre != 6:
    count += S(l[cur:pre])
    cur += 1
    pre += 1
print(count)