PAT-B 1040にはいくつかのPAT(C言語)があります
1382 ワード
タイトル
リンク:PAT(Basic Level)Practice 1040いくつかのPAT
文字列
入力形式:
入力は1行のみで、1文字列を含み、長さは超えず、
出力フォーマット:
与えられた文字列に何個含まれているかを1行に出力する
サンプルを入力:
APPAPT
出力サンプル:
2
構想
PATの個数は,アルファベットAの左端Pあたりの個数と右のTの個数との積の和である.
コード#コード#
---END---
その他の関連テーマ
PAT-B 1036オバマ氏とプログラミング(C言語)PAT-B 1037ホグワーツで小銭(C言語)PAT-B 1038統計同成績学生(C言語)PAT-B 1039結局買うかどうか(C言語)
リンク: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文字列を含み、長さは超えず、
P
・A
・T
・の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言語)