日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

PAT_B_1040_Java(25分)

發布時間:2023/12/15 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT_B_1040_Java(25分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

直接找A,每個A前的P和后的T個數乘積,再加和,就是輸出的數了

//意料之中的超時了三個測試點 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {//輸入BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));String str = bf.readLine();long sum = 0;//記錄PAT的個數for (int i = 0; i < str.length() - 1; i++) {//遍歷整個字符串if (str.charAt(i) == 'A') {//找到A的所有下標sum += P(str, i) * T(str, i);//用每個A的PAT組合加和}continue;}System.out.println(sum % 1000000007);//由于結果可能比較大,只輸出對 1000000007 取余數的結果}public static long P(String str, int a) {//計算下標a之前“P”的個數long P = 0;//記錄P的個數for (int i = 0; i < a; i++) {if (str.charAt(i) == 'P') {P++;}continue;}return P;}public static long T(String str, int a) {//計算下標a之后“T”的個數long T = 0;//記錄T的個數for (int i = str.length() - 1; i > a; i--) {if (str.charAt(i) == 'T') {T++;}continue;}return T;}}

繼續修改:

//25分 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {//輸入BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));String str = bf.readLine();int num_P = 0, num_T = 0;long sum = 0;//記錄PAT的個數int a[] = new int[str.length()];for (int i = 0; i < str.length(); i++) {if (str.charAt(i) == 'P') {num_P++;} else if (str.charAt(i) == 'A') {a[i] = num_P;// 將當前A前面的P的個數保存}}for (int i = str.length() - 1; i >= 0; i--) {// 統計每個A后面T的個數if (str.charAt(i) == 'T') {num_T++;} else if (str.charAt(i) == 'A') {sum += a[i] * num_T;// 當前A前面的P的個數×當前A后面的T的個數}}System.out.println(sum % 1000000007);//由于結果可能比較大,只輸出對 1000000007 取余數的結果} }

相同思想-不同寫法:

import java.io.BufferedReader; import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws Exception{BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));char[] c = bf.readLine().toCharArray();bf.close();int pat=0,at=0,t=0;for(int i=c.length-1;i>=0;i--) {if(c[i]=='T')t++;else if(c[i]=='A')at=(t+at)%1000000007;else pat=(pat+at)%1000000007;}System.out.print(pat);} }

總結

以上是生活随笔為你收集整理的PAT_B_1040_Java(25分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。