1813 方块游戏(枚举)
1. 問(wèn)題描述:
農(nóng)夫約翰試圖通過(guò)給奶牛一套通常用于學(xué)齡前兒童的 N 個(gè)拼寫板來(lái)教他的奶牛閱讀。每個(gè)拼寫板的每一側(cè)都有一個(gè)單詞和一個(gè)圖畫。例如,一側(cè)可能有單詞 cat 和一只小貓,另一側(cè)可能有單詞 dog 和一只小狗。因此,當(dāng)所有拼寫板放置到地面上時(shí),會(huì)顯示一組 N 個(gè)單詞。通過(guò)翻轉(zhuǎn)其中一部分板子,就可以得到另一組 N 個(gè)單詞。為了幫助奶牛練習(xí)單詞拼寫,約翰想要制作一些木塊,在每個(gè)木塊上都印上一個(gè)字母,使得奶牛可以使用這些木塊拼出看到的單詞。為了使得無(wú)論哪一組 N 個(gè)單詞朝上顯示,奶牛都能將其全部拼出,就需要印有各種字母的木塊都足夠的多。例如,如果 N=3 且單詞 box,cat,car 朝上顯示,則奶牛至少需要一個(gè) b 塊,一個(gè) o 塊,一個(gè) x 塊,兩個(gè) c 塊,兩個(gè) a 塊,一個(gè) t 塊和一個(gè) r 塊。請(qǐng)幫助約翰確定,印有每種字母的木塊至少需要提供多少塊,才能使得不管每個(gè)板子的哪一側(cè)朝上顯示,奶牛都可以拼出所有 N 個(gè)可見(jiàn)的單詞。
輸入格式
第一行包含整數(shù) N。接下來(lái) N 行,每行包含兩個(gè)單詞,這兩個(gè)單詞分別位于一塊木板的兩側(cè),每個(gè)單詞都是長(zhǎng)度不超過(guò) 10 的小寫字母構(gòu)成的字符串。
輸出格式
共 26 行。第一行輸出印有字母 a 的木塊所需的塊數(shù)。第二行輸出印有字母 b 的木塊所需的塊數(shù),以此類推。
數(shù)據(jù)范圍
1 ≤ N ≤ 100
輸入樣例:
3
fox box
dog cat
car bus
輸出樣例:
2
2
2
1
0
1
1
0
0
0
0
0
0
0
2
0
0
1
1
1
1
0
0
1
0
0
樣例解釋
在此樣例中,共有 N=3 塊拼寫板,共有 8 種單詞組合:
fox dog car
fox dog bus
fox cat car
fox cat bus
box dog car
box dog bus
box cat car
box cat bus
來(lái)源:https://www.acwing.com/problem/content/description/1815/
2. 思路分析:
分析題目可以知道對(duì)于每一組拼接板內(nèi)部與拼寫板之間都是獨(dú)立的所以我們可以求解出每一組中對(duì)應(yīng)字母出現(xiàn)次數(shù)的最大值然后將其累加起來(lái)即可。這樣不管哪一組都可以完成拼寫板的單詞。
3. 代碼如下:
import collectionsclass Solution:def process(self):n = int(input())res = [0] * 26for i in range(n):s = input().split()x, y = [0] * 26, [0] * 26for c in s[0]:# ord函數(shù)計(jì)算出當(dāng)前字符c的acsii碼x[ord(c) - ord("a")] += 1for c in s[1]:y[ord(c) - ord("a")] += 1for j in range(26):res[j] += max(x[j], y[j])for i in range(26):print(res[i])if __name__ == '__main__':Solution().process()總結(jié)
以上是生活随笔為你收集整理的1813 方块游戏(枚举)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 聚美优品云平台实践
- 下一篇: 运放参数解释及常用运放选型