1. 程式人生 > >PAT 有幾個PAT(乙級) ||非獨立

PAT 有幾個PAT(乙級) ||非獨立

題目描述

字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。



現給定字串,問一共可以形成多少個PAT?

輸入描述:

輸入只有一行,包含一個字串,長度不超過105,只包含P、A、T三種字母。

輸出描述:

在一行中輸出給定字串中包含多少個PAT。由於結果可能比較大,只輸出對1000000007取餘數的結果。

輸入例子:

APPAPT

輸出例子:

2
import java.util.*;

public class Main{
	public static void main(String [] args){
		Scanner in = new Scanner(System.in);
		String s = in.nextLine();
		char[] chs = s.toCharArray();
		long p = 0, pa = 0, pat = 0;
		for(int i = 0; i < chs.length; i++){
			if(chs[i] == 'P')
				p++;
			else if(chs[i] == 'A')
				pa+=p;
			else if(chs[i] =='T')
				pat+=pa;
		}
		
		System.out.println(pat%1000000007);
	}
}

腦子秀逗了。。。

我腦子怎麼就想不出來這樣的答案呢???

附上執行時間過長的答案:

import java.util.*;

public class Main{
	public static void main(String [] args){
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		
		int count = 0;
		for(int i = 0; i < str.length(); i++){
			if(Character.valueOf(str.charAt(i)) == 'P'){
				for(int j = i+1; j < str.length(); j++){
					if(Character.valueOf(str.charAt(j)) == 'A'){
						for(int k = j+1; k < str.length(); k++){
							if(Character.valueOf(str.charAt(k)) == 'T'){
								count++;
							}
						}
					}
				}
			}
		}
		
		System.out.println(count);
	}
}

相關推薦

PAT PAT(乙級) ||獨立

題目描述 字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。 現給定字串,問一共可以

PAT乙級 1040 PAT

字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位( P ),第 4 位( A ),第 6 位( T );第二個 PAT 是第 3 位( P ),第 4 位( A ),第 6 位( T )。 現給定字串,問一共可以形成多少個 PAT? 輸入格式: 輸入

1040. PAT(25)-PAT乙級真題

1040. 有幾個PAT(25)字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。現給定字串

PAT乙級—1040. PAT(25)-native

字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。 現給定字串,問一共可以形成多少個PAT? 輸入格式: 輸入只有一行,包含一個字串,長度不超過1

1040. PAT(25)-浙大PAT乙級真題java實現

個人部落格:開啟連結 1040. 有幾個PAT(25) 字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T); 第二個PAT是第3位(P),第4位

PAT 1040 PAT

result har ret blank return http pri lan main https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616 字符串 APPAPT

1040 PAT (25 分)

字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。 現給定字串,問一共可以形成多少個 PAT? 輸入格式: 輸入只有一行,包含一個字串,長度

1040. PAT(25)

字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。 現給定字串,問一共可以形成多少個PAT? 輸入格式: 輸入只有一行,包含一個字串,長度不超過105,只包含P、A、T三

1040 PAT——c實現

1040 有幾個PAT (25 分) 字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現給定字串,問一共可以形成多少個 PAT?

轉自 牛客 1040. PAT(25)

1040. 有幾個PAT(25) 時間限制 120 ms 記憶體限制 65536 kB 程式碼

PAT Basic1040 PAT

字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現給定字串,問一共可以形成多少個 PAT? 輸入格式:

PAT (Basic Level) Practice 1040 PAT

乙級1040 如果順著想,找到一個P,開始尋找下一個A,然後繼續遍歷有幾個T,遍歷完回去從第二個A繼續遍歷有幾個T再加上去,直到A全部遍歷完,這是一輪。 一個for是P,一個for是A,一個for是T,複雜度都至少O(n³)了,且時間限制是150ms,肯定超時,所以這個方法不可取

B1040 PAT

字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現給定字串,問一共可以形成多少

1040 PAT(25 分)

字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現給定字串,問一共可以形成多少個 PAT? 輸入格式: 輸入只有一行,包含

1040 PAT (fgets,getline)

eml ott view 比較 scrip 三種 color 結果 ble 字符串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)

PAT演算法筆記(八)————PAT*

題目描述 字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。 現給定字串,問一共可以形成多少個PAT? 輸入描述: 輸入只有一行,包含一個字串,長度不超過

PAT】(B)1040 PAT

『題目』 字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。 現給定字串,問一共可以形成多少個PAT? 輸入格式: 輸入只有一行,包含一個字串,長度不超過10

PAT 1040 PAT python (無超時)

1040 有幾個PAT(25)(25 分) 字串APPAPT中包含了兩個單詞“PAT”,其中第一個PAT是第2位(P),第4位(A),第6位(T);第二個PAT是第3位(P),第4位(A),第6位(T)。 現給定字串,問一共可以形成多少個PAT? 輸入格式

PAT B1040 PAT (25 分)

統計 計數 如果 max sys i++ else clu ans 字符串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現給定字

1040 PAT(25)(25 分)

這道題關鍵是判斷A的左右有多少P和T將兩邊的個數相乘,開始遍歷陣列得出T的個數之後就從頭開始每遇到T countT就自減1     P就自加1之後遇到A就計算result,將每次的result相加就是結果。 #include<iostream>#include&l