Roman Numerals ---解题报告
来源:互联网 发布:教育云数据什么意思 编辑:程序博客网 时间:2024/05/22 07:03
又是一道ACM题。这题很早前看过的,但是当时没怎么想。今天受人之托,认真做了下,发现也不怎么难。这题做的好高兴,时间,代码长度都比较靠前,虽然数据是随机的,时间上带有偶然性,不过确实很兴奋。最重要的是,一次AC,呵呵。
题目出处:
北大:http://acm.pku.edu.cn/JudgeOnline/problem?id=1213
吉大:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1800&off=1800
题目描述:
给定一个式子(只含下面给定的字符),判断在罗马数字表达式里,是不是成立(成立,输出correct ,否则输出Incorrect) 。对于阿拉伯数字是不是成立 (如果只有一个,则是vaild;多个,则是ambiguous;不可能,则是impossible)。
罗马数字里:
I1 V5X10 L50C100 D500M1000阿拉伯数字里:
只要不同的字符对应的数字不同,而且没有前缀0就行了。
题目中,还列举了一些规则,这些都不用管的,只要知道,对于罗马的,如果连续二个字符中,第一个字符对应的数小于第二个字符对应的数,则第一个数为负数。其余的都是正数,直接加起来就行了。
输入:
一个字符串,
输出:
上面已经指出了。
思路:
1。判断罗马数字很简单,因为输入的格式都是正确的,直接根据上面规则就行了。
2。难点在于判断是不是阿拉伯的。我的做法是,先统计出现的不同字符。然后用回溯。假设每个数字对应0~9的情况。
如果超过两种,直接返回,这样算是一个剪枝。用一个visit[]标志,该数字是不是被其他字符用过的。回溯,给每个字符赋值。然后再判断式子成不成立 。
代码:
- Roman Numerals ---解题报告
- Roman numerals 解题报告
- UVa185 - Roman Numerals
- Roman numerals BIT1002
- 1002 Roman numerals
- bit Roman numerals
- POJ-1213-Roman Numerals
- uva 185 Roman Numerals
- ROMAN NUMERALS 题解
- Checkio: Roman numerals
- UVA 185 - Roman Numerals
- uva185 - Roman Numerals
- UVa 185 - Roman Numerals
- UVa 11616 - Roman Numerals
- ZOJ3501 Roman Order 解题报告
- 寒假练习 1002 Roman numerals
- POJ 1213 Roman Numerals 笔记
- [LeetCode]Roman to Integer,解题报告
- 电信网管-FCAPS
- Final关键字
- MOSS 站点下取获取当前登录人的显示名(中文姓名)
- 斗罗大陆 第一百六十七章 奥斯卡,宁荣荣
- 霸王花猪肚汤
- Roman Numerals ---解题报告
- 一步一步导入TXT文件数据到数据库
- vtk安装经典方法
- DCMTK的编译总结
- DynamoRIO开源了
- 孙子兵法解释
- java初学者应具有的
- 安装VmwareServer遇到“系统管理员设置了系统策略 禁止进行此安装”的解决办法
- firefox下不能启用scim