close
Content

A. C. Marcos正在朝著音樂創作的方向邁出第一步。
雖然他遇到了一些困難,但至少他獲得了愉悅的旋律和誘人的節奏。
在音樂中,音符具有音高(其頻率,導致聲音高低)和持續時間(音符聽起來多長時間)。
在這個問題上,我們只對音符的持續時間感興趣。
音樂分為小節序列,小節由一系列音符組成。
音符的持續時間由其形狀指示。
在此問題中,我們將使用大寫字母表示音符的持續時間。

下表列出了所有可用的音符:

音符
代表符號 W H Q E S T X
持續時間 1 1/2 1/4 1/8 1/16 1/32 1/64

小節的持續時間是其所有音符的持續時間之和。
在Marcos的音樂中,每個小節的持續時間都相同。
由於Marcos只是一個初學者,他的著名老師"約翰·塞巴斯蒂安·巴哈"教授,認為每個小節的持續時間總和必須為1。
例如,Marcos撰寫了一個包含五種小節的圖,其中前四項具有正確的持續時間,而最後一項是錯誤的。
在下面的範例中,每個小節都用斜杠包圍,並且每個音符如上表所示。

/HH/QQQQ/XXXTXTEQH/W/HW/

Marcos也非常喜歡電腦。
他希望你寫一個程式,幫忙計算他的音樂有多少小節擁有正確的持續時間。

Input

每行包含一個字串s,代表Marcos的音樂。
該字串的長度length (3 <= length <= 200)
如果該字串為一個星號"*",代表輸入結束。
小節中的每個音符都由相應的大寫字母表示。
每一個音樂至少包含一個小節。
每一個小節至少包含一個音符。
輸入中的所有字符只會有"/"和表示音符的七個大寫字母。

Output

對於每行音樂,請輸出一個整數。

代表該音樂擁有正確持續時間的小節數量。

Sample Input #1
/HH/QQQQ/XXXTXTEQH/W/HW/
/W/W/SQHES/
/WE/TEX/THES/
*
Sample Output #1
4
3
0

python:

dic={'W':1,'H':0.5,'Q':0.25,'E':0.125,'S':0.0625,'T':0.03125,'X':0.015625}
while True:
    try:
        arr=input().split('/') #這裡出來會是['','HH', 'QQQQ', 'XXXTXTEQH', 'W', 'HW',''],所以要把前跟後刪掉
        if(arr==['*']):break
        arr=arr[1:-1]
        #print(arr)
        ans=0 #每一個條件符合就+1
        for i in arr:
            arr1=[float(dic[j]) for j in i] #把每一個元素拆開,查dic,以符點數型態進去list arr1
            #print(arr1)
            if(sum(arr1)==1):ans+=1
        print(ans)
    except:
        break
arrow
arrow
    文章標籤
    python 高中生程式解題 UVA
    全站熱搜
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()