历年蓝桥杯Python青少组中/高级选拔赛(STEMA)真题解析 | 2024年3月编程题(9)

学习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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值