您的任务是确定给定的字符串长度是否合适,并可以用Scrabble磁贴表示,如果是,则输出每个字母的分数之和。
如果您不知道如何玩Scrabble :,则有100个磁贴,上面印有字母A–Z,以及两个可代表任何字母的通配符。每个字母都有一定数量的点,每个图块(但不一定是单词)只能使用一次。演奏单词时,将所使用的每个图块的点值相加,即为分数。由于可用的字母数量有限,因此一个单词只能将某个字母的次数与该字母具有图块+任何未使用的通配符的次数相同。拼字游戏板的大小为15×15,因此该单词的长度必须在2到15个字符之间。
有关英文版本中每个字母的数量和分数的列表,请参见下面或http://boardgames.about.com/od/scrabble/a/tile_distribute.htm(存档)。
字母数量积分字母数量积分 ------------------- ------------------- A 9 1 O 8 1 B 2 3 P 2 3 C 2 3 Q 1 10 D 4 2 R 6 1 E 12 1 S 4 1 F 2 4 T 6 1 G 3 2 U 4 1 H 2 4 V 2 4 我9 1 W 2 4 J 1 8 X 1 8 K 1 5 Y 2 4 L 4 1 Z 1 10 M 2 3 [野生] 2 0 N 6 1
进一步规定
- 该程序应采用来自STDIN等的单个输入字符串。
- 输入将始终仅包含大写字母。
- 如果字符串包含的字母副本多于该字母的未使用通配符或磁贴,或者字符串的长度不在2到15之间(包括2和15),则程序应输出
Invalid
。 - 否则,应使用上表中的数据将分数相加并输出。
- 除非必要,否则不要使用通配符。
- 不必担心双字得分或字符串是否为真字之类的奖金。
- 程序应通过STDOUT等输出结果。
- 默认情况下不允许存在漏洞。
- 不允许使用外部资源(例如网站)以及计算拼字游戏得分或适当数量的任何库,API,函数等。
- 这是代码高尔夫球,因此最少的字节获胜。
演练
Input: CODEGOLF
C -> 3, O -> 1, D -> 2, E -> 1, G -> 2, O -> 1, L -> 1, F -> 4
3 + 1 + 2 + 1 + 2 + 1 + 1 + 4 = 15
Output: 15
测试用例
输入输出 ------------------------ 可擦写14 爵士19 堆叠兑换32 XYWFHQYVZVJKHFW 81 PIZZAZZ无效 KIXOKEJAJAX无效 误区无效
-1
?
Invalid
。