华为OD在线OJ:
已购买本专栏用户,请私信博主开通账号,在线刷题!!!
在线OJ:立即刷题
题库专栏:2023华为OD机试(A卷+B卷)(C++JavaJSPy)
题目描述
有这么一款单人卡牌游戏,牌面由颜色和数字组成,颜色为红、黄、蓝、绿中的一种,数字为0-9中的一个。游戏开始时玩家从手牌中选取一张卡牌打出,接下来如果玩家手中有和他上一次打出的手牌颜色或者数字相同的手牌,他可以继续将该手牌打出,直至手牌打光或者没有符合条件可以继续打出的手牌。
现给定一副手牌,请找到最优的出牌策略,使打出的手牌最多。
输入描述
输入为两行,第一行是每张手牌的数字,数字由空格分隔,第二张为对应的每张手牌的颜色,用r y b
g这4个字母分别代表4种颜色,字母也由空格分隔。手牌数量不超过10。
输出描述
输出一个数字,即最多能打出的手牌的数量。
ACM输入输出模式
如果你经常使用Leetcode,会知道letcode是不需要编写输入输出函数的。但是华为OD机考使用的是 ACM 模式,需要手动编写输入和输出。
所以最好在牛-客上提前熟悉这种模式。例如C++使用cin/cout
,python使用input()/print()
。JavaScript使用node的readline()
和console.log()
。Java 使用sacnner/system.out.print()
用例
输入 | 1 4 3 4 5 r y b b r |
输出 | 3 |
说明 | 如果打(1, r |