abc序列数

简介: abc序列数

链接:https://ac.nowcoder.com/acm/contest/1083/A

来源:牛客网

 

给出一个字符串s,你需要做的是统计s中子串”abc”的个数。子串的定义就是存在任意下标a<b<c,那么”s[a]s[b]s[c]”就构成s的一个子串。如”abc”的子串有”a”、”b”、”c”、”ab”、”ac”、”bc”、”abc”。

输入描述:

一个字符串s。保证输入只包含小写拉丁字符。

输出描述:

一个整数表示s中子串”abc”的个数。

示例1

输入

复制

abcabc

输出

复制

4

备注:

1<=|s|<=1e5

 

这题只要想到方法其实很简单。

代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[100005];
    //scanf("%s",str);
    gets(str);
    int i;
    long long int a=0,b=0,c=0;
    for(i=0;i<strlen(str);i++)
    {
        if(str[i]=='a')
            a++;
        else if(str[i]=='b')
            b+=a;
        else if(str[i]=='c')
            c+=b;
    }
    printf("%lld\n",c);
    return 0;
}
目录
打赏
0
0
0
0
10
分享
相关文章
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
785 0
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
|
10月前
输入一个字符串,统计其中字符A的数量并且输出,输入共有一行,为一个不带空格的字符串(其中字符数不超过100),输出一行,包含一个整数,为输入字符串中的A的数量
输入一个字符串,统计其中字符A的数量并且输出,输入共有一行,为一个不带空格的字符串(其中字符数不超过100),输出一行,包含一个整数,为输入字符串中的A的数量
116 0
使用单词表拼接长字符串的方法数
使用单词表拼接长字符串的方法数
​判断给定字符序列是否是回文
​判断给定字符序列是否是回文
109 0
【算法】给定一个数组,除了一个数出现1次之外,其余数都出现3次,输出出现一次的那个数。
给定一个数组,除了一个数出现1次之外,其余数都出现3次。找出出现一次的数。如:{1, 2, 1, 2, 1, 2, 7},找出7.格式:第一行输入一个数n,代表数组的长度,接下来一行输入数组A[n],(输入的数组必须满足问题描述的要求),最后输出只出现一次的数。 package yn; import java.util.Scanner; public class Out
2111 0
|
10月前
对任意给定的两个正整数,100<n<m<1000,计算这两个数之间所有素数和,包含m,n自身
对任意给定的两个正整数,100<n<m<1000,计算这两个数之间所有素数和,包含m,n自身
62 0
对任意给定的两个正整数,100<n<m<1000,计算这两个数之间所有素数和,包含m,n自身