描述
在庆祝祖国母亲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){//统计CHNif(*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;
}