PAT-1003私は合格したいと思います!(20点)のpython3(知識:数が得られるアレイの位置を見つけます。)

1003で私がしたいです!(20点)

「正解は、」ほとんどの喜び自動返信文話題与えられたシステムです。このタイトルは、「正解」の大きな配信のPATに属している - ただの文字列以下の条件を満たしている読んで、システムが出力されます「正解」、それ以外の場合は「間違った答えを。」を出力します

「正解」の条件があります:

  1. 文字列は3文字の唯一のP、A、Tを持っている必要があり、文字は、他のを含めることはできません。
  2. 任意の形状の文字列がxPATx「正解」を得ることができ、あるいはxは空の文字列、または文字Aでのみからなる文字列です。
  3. aPbTcが正しい場合、次にaPbATcaは、正確であり、B、C又は全て空の文字列、または文字のみのA.で構成される文字列

今PATの審判プログラムを書くことをお願いすると、自動的に「解答権」を得ることができた文字列を決定します。

入力フォーマット:

各テストは、テスト入力を含みます。ライン1は正の整数N(<10)で与えられ、検出すべき文字列の数です。次に、各列に対して1つの行ではなく、100以上の文字列の長さ、スペースなし。

出力フォーマット:

各文字列の検出結果の行、列は「正しい答え」、出力YES、それ以外の場合は出力NOを得ることができます。

サンプル入力:

8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA

出力例:

YES
YES
YES
YES
NO
NO
NO
NO


キー問題解決: すべての要素とPATとの出会い、決意はYESですP前面的A的个数 乘以 P与T之间的A的个数 是否等于 T后面A的个数
AT > 0 and (AP*AT)==TA

ACコード:

def IsPat(s):
    Pnum=s.count("P")
    Anum=s.count("A")
    Tnum=s.count("T")
    if Pnum==1 and Tnum==1 and (Pnum+Anum+Tnum)==len(s):
        AP=s.find("P")  # 找到P的位置就相当于求得了P前面A的个数
        T=s.find("T")
        AT=T-AP-1
        TA=len(s)-T-1
        if AT > 0 and (AP*AT)==TA:
            print("YES")
        else:
            print("NO")
    else:
        print("NO")


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

他のものより少しの忍耐は、あなたは奇跡を作成します。

公開された48元の記事 ウォン称賛50 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_45021180/article/details/104974452