--------------------------------------------------------------------------------------------------------------------------------------------------------
時間限制:1秒 空間限制:32768K 代碼長度限制 100 KB
--------------------------------------------------------------------------------------------------------------------------------------------------------
題目描述
字符串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。現給定字符串,問一共可以形成多少個PAT?
輸入描述:
每個輸入只有一行,包含一個字符串,長度不超過10的5次方,只包含P、A、T三種字母。
輸出描述:
在一行中輸出給定字符串中包含多少個PAT。由於結果可能比較大,只輸出對1000000007取餘數的結果。
APPAPT
輸出例子:
2
-------------------------------------------------------------------------------------------------------------------------------------------------------
實現思路:
(1).將輸入字符串均轉換爲字符數組cArr;
(2).定義字符串“P”、“PA”及“PAT”出現的數量pCount、paCount、patCount,循環字符數組,找到的字符如果爲“P”,變量pCount自增,如果爲“A”,paCount數量增加pCount,如果都不是,patCount的數量增加paCount;
(3).對patCount取餘,否則會溢出,循環結束,打印出patCount即可。
--------------------------------------------------------------------------------------------------------------------------------------------------------
package com.biyao.algorithm.niuke.a1;
import java.util.Scanner;
public class Main_a1_030 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String s1 = scan.next();
char[] cArr = s1.toCharArray();
int pCount = 0;
int paCount = 0;
int patCount = 0;
for (int i = 0; i < cArr.length; i++) {
if(cArr[i] == 'P'){
pCount++;
}else if(cArr[i] == 'A'){
paCount = paCount + pCount;
}else{
patCount = patCount + paCount;
patCount = patCount%1000000007;
}
}
System.out.println(patCount);
}
}
}