首页 > 试题广场 >

小乐乐与字符串

[编程题]小乐乐与字符串
  • 热度指数:12409 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在庆祝祖国母亲70华诞之际,老师给小乐乐出了一个问题。大家都知道China的英文缩写是CHN,那么给你一个字符串s,你需要做的是统计s中子序列CHN”的个数。

序列的定义:存在任意下标a < b < c,那么“s[a]s[b]s[c]”就构成s的一个子序列。如“ABC”的子序列有“A”、“B”、“C”、“AB”、“AC”、“BC”、“ABC”


输入描述:
输入只包含大写字母的字符串s。(1 ≤ length ≤ 8000)


输出描述:
输出一个整数,为字符串s中子序列“CHN”的数量。
示例1

输入

CCHNCHN

输出

7
示例2

输入

CCHNCHNCHNCHN

输出

30
s=input()
x,y,z = 0,0,0
for i in range(len(s)):
    if s[i]=="C":
        x+=1
    elif s[i]=="H":
        y+=x
    elif s[i]=="N":
        z+=y
print(z)

发表于 2021-07-01 01:33:08 回复(0)
为啥下面的代码不行呢?和答案对不上,第一个示例答案是7,我运行是13。
我觉得我这个答案才是对的吧?
s1 = input()
num = s1.count('CHN')
num += s1.count('CH')
num += s1.count('CN')
num += s1.count('HN')
num += s1.count('C')
num += s1.count('H')
num += s1.count('N')
print(num)


发表于 2021-01-12 17:01:13 回复(1)
s=input()
x=0
y=0
z=0
for i in range(len(s)):      #循环判断元素
        if s[i]=="C":        #如果第一个符合C
            x=x+1
        elif s[i]=="H":      #遇到H的话就组成CH此时有C个"CH”序列
            y=x+y
        elif s[i]=="N":      #找到“N”的时候,就是“CH“还有"N组成的“CHN”
            z=z+y
print(z)

发表于 2020-09-08 16:09:45 回复(0)