PAT A1093-カウントPATさん

PAT A1093-カウントPATさん

タイトル

文字列がAPPAPT2含まれていPATたサブストリングとしてのを。最初のものは、第2、第4、及び第6文字で構成され、2つ目は第3、第4、及び第6文字で構成されています。

今、任意の文字列を与え、あなたは多くの言うことになっているPAT文字列に含まれているのを。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。それぞれの場合のために、そこだけを含むこれ以上105文字以下の文字列を与える唯一のラインがあるPAまたはT

出力仕様:

各テストケースのために、一列に多数の印刷PAT「の文字列に含まれる複数可。結果は膨大な数とすることができるので、あなただけの出力に十億七によってモード化の結果を持っています。

サンプル入力:

APPAPT

サンプル出力:

2

PATの数は、最後の文に特別な注意を払う旨の文字列の数出力に結果が十億七によってモード化されています最初に私は無視し、その結果は長い間、間違った、不注意を探して、%十億七ではありません。

問題解決のためのアイデア

A固定小数点、決定AP数、及びATの右側の桁を、それは、1つのに、決定することができるA位置に結合することができるPAT文字列の数。

コード

#include <stdio.h>
#include <string.h>

using namespace std;

int main(){
    char c[1000001];
    scanf("%s", c);
    
    unsigned int res = 0, len, P = 0, T = 0;
    len = (unsigned int)strlen(c);
    for(int i = 0; i < len; i++){
        if(c[i] == 'T') T++;
    }
    for(int i = 0; i < len-1; i++){
        if(c[i] != 'A'){
            if(c[i] == 'P') P++;
            else if (c[i] == 'T') T--;
            continue;
        }
        res = (res + P * T)% 1000000007;
    }
    printf("%d\n", res);
    return 0;
}

リリース9件のオリジナルの記事 ウォンの賞賛1 ビュー184

おすすめ

転載: blog.csdn.net/weixin_41515197/article/details/104121451