PAT-B 1040にはいくつかのPAT(C言語)があります

1382 ワード

タイトル
リンク:PAT(Basic Level)Practice 1040いくつかのPAT
文字列APPAPTには2つの単語が含まれているPAT、そのうち1番目PATは2位(P)、4位(A)、6位(T);2位PATは3位(P)、4位(A)、6位(T).ここで与えられた文字列は、全部で何個形成できますかPAT?
入力形式:
入力は1行のみで、1文字列を含み、長さは超えず、PAT・の3文字のみを含む.
出力フォーマット:
与えられた文字列に何個含まれているかを1行に出力するPAT.結果は比較的大きい可能性があるので、100000007に対して余剰数を取った結果のみ出力します.
サンプルを入力:
APPAPT
出力サンプル:
2
構想
PATの個数は,アルファベットAの左端Pあたりの個数と右のTの個数との積の和である.
コード#コード#
#include
#include
int main()
{
  
  char c[100001];
  long long sum = 0;
  int countp = 0;
  int countt = 0;
  scanf("%s", c);

  //  T   
  for(int i = 0; i < strlen(c); i++){
    if(c[i] == 'T'){
      countt++;
    }
  }
  
  for(int i = 0; i < strlen(c); i++){
    if(c[i] == 'P'){          //    P   
      countp++;
    }
    else if(c[i] == 'T'){    //    T   
      countt--;
    }
    else if(c[i] == 'A'){
      sum += countp * countt;
    }
  }
  

  printf("%lld", sum % 1000000007);
  return 0;
}


---END---
その他の関連テーマ
PAT-B 1036オバマ氏とプログラミング(C言語)PAT-B 1037ホグワーツで小銭(C言語)PAT-B 1038統計同成績学生(C言語)PAT-B 1039結局買うかどうか(C言語)