手牌只有 13 张,可能摸的牌面一共 27 种,直接枚举再判定即可。
4 张就跳过,否则当作摸到它,看 14 张能不能胡。1 或 2。2 张,拿掉这对),剩下的牌必须全部拆成顺子或刻子。-1。给定小明手里的 13 张牌(每张牌用一个字符表示),请判断他再摸 1 张之后能不能胡牌。
小明跟朋友在玩四川麻将。牌只有三门:万(1~9)、筒(a~i)、条(A~I)。每一门有 9 个数,同一牌面最多 4 张。
要胡牌,下面几条必须同时成立:
14 张(原来 13 张再加上摸来的 1 张)。1 条、2 条、3 条;或刻子,如 3 张 1 条),再加上 1 对将牌(对子,如 2 张 2 条)。1 门或 2 门花色,不能万、筒、条三门都有。例如可以只有筒,也可以同时有筒和条,但不能三门齐全。若摸某张牌后可以胡牌,把所有这样的牌按 ASCII 码从小到大排好,连成一个字符串输出。若怎样摸都不能胡,输出 -1。
约束条件
134 张一行长度为 13 的字符串,表示当前手牌,牌的先后顺序没有要求。
牌面字符约定:
1~9a~iA~I例如 abcdefghi1234 表示 1~9 筒以及 1~4 万。
输出一行。若存在能胡牌的摸牌,按 ASCII 升序把这些牌面字符拼成一个字符串;否则输出 -1。
输入
111222333abcA
输出
-1
说明
手里已经有万、筒、条三门,不满足缺一门,再摸一张也无法胡牌。
输入
1234567abcdef
输出
147
说明
当前是 1~7 万和 1~6 筒,缺条。
1 万:对子 11 万,顺子 234 万、567 万,顺子 abc 筒、def 筒。4 万:顺子 123 万,对子 44 万,顺子 567 万,顺子 abc 筒、def 筒。7 万:顺子 123 万、456 万,对子 77 万,顺子 abc 筒、def 筒。按 ASCII 顺序输出 147。
输入
ABCABCABCABC1
输出
1
说明
手里是 4 张 1 条、4 张 2 条、4 张 3 条和 1 张 1 万。摸 1 万后可拆成三个刻子、一个 ABC 顺子和对子 11 万。A、B、C 已经各有 4 张,不能再摸,因此只有 1。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册