学习Python从娃娃抓起!记录下蓝桥杯备考学习过程中的题目,记录每一个瞬间。
附上汇总贴:历年蓝桥杯Python青少组中/高级选拔赛(STEMA)真题解析 | 汇总
【题目描述】
提示信息:
ABB形式的字符串:是由3个字符组成,其中后两个字符相同,第一个字符与后两个字符不同。
如:“cbb”、“q22”、"688"都是ABB形式的字符串;“abc”、“wwe”、"pop"都不是ABB形式的字符串。
子串:是指一个字符串中连续的一段字符序列。
如:字符串"HelloWorld!"中,“Hello”、“ello”、“World”、"or"都是该字符串的子串。
给定一个字符串S,请统计S中有多少个ABB形式的子串,以及多少种ABB形式的子串。
例如:S=“nnnseebbetoosee”,ABB形式的子串有see、ebb、too、see,共4个;ABB形式的不同子串有see、ebb、too,共3种。
【输入】
输入一个长度不超过100的字符串S
【输出】
输出两个整数,分别表示S中有多少个ABB形式的子串,以及多少种ABB形式的子串,整数之间以一个空格隔开
【输入样例】
nnnseebbetoosee
【输出样例】
4 3
【代码详解】
s = input()
cnt = 0
ls = []
# se = set() # 创建空集合
for i in range(0, len(s)-2):
if s[i+1]==s[i+2] and s[i]!=s[i+1]:
ls.append(s[i:i+2+1])
print(len(ls), len(set(ls)))
【运行结果】
nnnseebbetoosee
4 3