1003 我要通過(guò)

題目鏈接:

https://pintia.cn/problem-sets/994805260223102976/problems/994805323154440192

“答案正確”是自動(dòng)判題系統(tǒng)給出的最令人歡喜的回復(fù)。本題屬于 PAT 的“答案正確”大派送 —— 只要讀入的字符串滿足下列條件,系統(tǒng)就輸出“答案正確”租幕,否則輸出“答案錯(cuò)誤”引瀑。

得到“答案正確”的條件是:

字符串中必須僅有 P、 A、 T這三種字符,不可以包含其它字符;
任意形如 xPATx 的字符串都可以獲得“答案正確”俏扩,其中 x 或者是空字符串,或者是僅由字母 A 組成的字符串弊添;
如果aPbTc 是正確的录淡,那么 aPbATca 也是正確的,其中 a油坝、 b嫉戚、 c 均或者是空字符串,或者是僅由字母 A 組成的字符串免钻。
現(xiàn)在就請(qǐng)你為 PAT 寫一個(gè)自動(dòng)裁判程序彼水,判定哪些字符串是可以獲得“答案正確”的。

輸入格式:

每個(gè)測(cè)試輸入包含 1 個(gè)測(cè)試用例极舔。第 1 行給出一個(gè)正整數(shù) n (<10)凤覆,是需要檢測(cè)的字符串個(gè)數(shù)。接下來(lái)每個(gè)字符串占一行拆魏,字符串長(zhǎng)度不超過(guò) 100盯桦,且不包含空格慈俯。

輸出格式:

每個(gè)字符串的檢測(cè)結(jié)果占一行,如果該字符串可以獲得“答案正確”拥峦,則輸出 YES贴膘,否則輸出 NO。

輸入樣例:

8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA

輸出樣例:

YES
YES
YES
YES
NO
NO
NO
NO

分析

條件1:意思很清楚略号,具體實(shí)現(xiàn)就是字符串中P A T三個(gè)字母數(shù)量之和等于字符串總長(zhǎng)度刑峡。
條件2:xPATx是符合要求的,x可以為空字符串或僅由A組成的字符串玄柠,而且要注意PAT左右兩側(cè)的x必須是一樣的突梦,形如PAT、APATA羽利、AAPATAA等都是正確的宫患。
條件3:這個(gè)條件稍微有點(diǎn)復(fù)雜。如果aPbTc是正確的这弧,則aPbATca也是正確的娃闲,仔細(xì)比較這兩個(gè)字符串,可以發(fā)現(xiàn)每在aPbTc中的P匾浪、T之間加一個(gè)A皇帮,就要在末尾c后面加上P之前的a才能形成正確的字符串。b最簡(jiǎn)單可以為A户矢,這時(shí)APATA是正確的玲献。如果在中間加上一個(gè)A變成APAATA,就需要再在末尾加上一個(gè)a(本例中為A)變成APAATAA才能變?yōu)檎_的梯浪。再比如AAPATAA為正確,在中間加一個(gè)A變?yōu)锳APAATAA瓢娜,末尾也要加上a(本例中為AA)變?yōu)锳APAATAAAA才是正確的挂洛。可以觀察到眠砾,形如aPbTc的字符串虏劲,c要等于b長(zhǎng)度個(gè)a,即c = a*len(b)褒颈。

Python代碼

n = eval(input())

for i in range(n):
    s = input()

    n_p = s.count('P')
    n_t = s.count('T')
    n_a = s.count('A')
    p_idx = s.find('P')
    t_idx = s.find('T')
    s1 = s[:p_idx]      #s1, s2, s3即組成了形如s1Ps3Ts2的字符串
    s2 = s[t_idx+1:]  
    s3 = s[p_idx+1:t_idx]
    if sum([n_p, n_a, n_t]) != len(s):  
        print('NO')
    elif n_p != 1 or n_t != 1: 
        print('NO')
    elif t_idx < p_idx or s2 != s1*s3.count('A') or len(s3) == 0:
        print('NO')
    else:
        if(s1.count('A') != len(s1) or s2.count('A') != len(s2) or s3.count('A') != len(s3)):
            print('NO')
        else:
            print('YES')

回顧

其實(shí)這道題最為重要的是要提煉出“形如aPbTc的字符串柒巫,c要等于b長(zhǎng)度個(gè)a,即c = a*len(b)”這個(gè)條件谷丸,條件2和條件3都可以概括為這個(gè)條件堡掏。而其余的條件也要注意,不要漏掉刨疼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泉唁,一起剝皮案震驚了整個(gè)濱河市鹅龄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亭畜,老刑警劉巖扮休,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拴鸵,居然都是意外死亡玷坠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門劲藐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)侨糟,“玉大人,你說(shuō)我怎么就攤上這事瘩燥★踔兀” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵厉膀,是天一觀的道長(zhǎng)溶耘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)服鹅,這世上最難降的妖魔是什么凳兵? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮企软,結(jié)果婚禮上庐扫,老公的妹妹穿的比我還像新娘。我一直安慰自己仗哨,他們只是感情好形庭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著厌漂,像睡著了一般萨醒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上苇倡,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天富纸,我揣著相機(jī)與錄音,去河邊找鬼旨椒。 笑死晓褪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的综慎。 我是一名探鬼主播涣仿,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼寥粹!你這毒婦竟也來(lái)了变过?” 一聲冷哼從身側(cè)響起埃元,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎媚狰,沒(méi)想到半個(gè)月后岛杀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡崭孤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年类嗤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辨宠。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遗锣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗤形,到底是詐尸還是另有隱情精偿,我是刑警寧澤赚导,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布椰拒,位于F島的核電站,受9級(jí)特大地震影響蔫巩,放射性物質(zhì)發(fā)生泄漏霹期。R本人自食惡果不足惜叶组,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望历造。 院中可真熱鬧甩十,春花似錦、人聲如沸吭产。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)垮刹。三九已至达吞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荒典,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工吞鸭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寺董,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓刻剥,卻偏偏與公主長(zhǎng)得像遮咖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子造虏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容