leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心” leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列? 定义: abb 型字符串满足以下条件: 字符串长度为 3 。 字符串后两位相同。 字符串前两位不同。-笔试面试资料

这是qklbishe.com第18401 篇笔试面试资料
提供答案分析,通过本文《leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”
leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列?
定义: abb 型字符串满足以下条件: 字符串长度为 3 。 字符串后两位相同。 字符串前两位不同。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”

leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列?
定义: abb 型字符串满足以下条件:

  1. 字符串长度为 3 。
  2. 字符串后两位相同。
  3. 字符串前两位不同。
leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”     leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列?   定义: abb 型字符串满足以下条件:       字符串长度为 3 。       字符串后两位相同。       字符串前两位不同。 区块链毕设学生799683366号
解题思路:
由于题目要求的为子序列而非子串,因此对于一个特定位置的字符,其与后面字符的有序排列组合均为符合条件的子序列
举例:对于字符串abbbb,选定字符a,a可与后面4个b中的任意2个搭配形成abb,因此有6种方案
对于整个字符串,可事先统计好字符出现频次,而后在遍历的过程中对每个字符进行计算。在遍历的过程中,由于字符出现的次数已事先统计,直接取值计算即可
下面上代码
import math from collections import defaultdict  def solution(n, string):     # 初始化一个字典用于记录每个字符出现的次数     d = defaultdict(int)     # 统计次数     for s in string:         d[s] += 1          # 解的数量     num = 0     # 开始遍历     for s in string:         # 每过一个字符,对应统计减一         d[s] -= 1         # 遍历,对于当前字符,与其他字符的排列组合数目即为潜在的abb序列数目         for e in d.keys():             if e != s:                 num += math.comb(d[e], 2)          return num  if __name__ == "__main__":     while True:         try:             t = int(input())             string = input()             print(solution(t, string))         except EOFError:             break

今天 13:41:12 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心” leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列? 定义: abb 型字符串满足以下条件: 字符串长度为 3 。 字符串后两位相同。 字符串前两位不同。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情