描述
在庆祝祖国母亲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”的数量
输入:CCHNCHN
输出:7
输入:CCHNCHNCHNCHN
输出:30
实现代码
#include <stdio.h>
int main()
{
char str[8001]={0};
scanf("%s",str);
char* p=str;
long long c=0;
long long ch=0;
long long chn=0;
while(*p)
{
//统计CHN
if(*p == 'C')
c++;
else if(*p == 'H')//CH的个数为这个H之前所有C的个数
ch+=c;
else if(*p == 'N')//CHN的个数为这个N之前所有CH的个数
chn+=ch;
p++;
}
printf("%lld",chn);
return 0;
}