LeetCode算法题——13. Roman to Integer
2017-03-21 17:11
330 查看
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
针对罗马字符出现的每个位上所有情况考虑进去,得到相应整形数字
class Solution {
public:
int romanToInt(string s) {
int qian=0,bai=0,shi=0,ge=0;
int Cnum=0,Dnum=0,Mnum=0,Xnum=0,Lnum=0,Inum=0,Vnum=0;
for(int i=0;i<s.length();i++){
if(s[i]=='M'){
if(Cnum){
bai=9;
}else{
qian++;
}
}
if(s[i]=='C'){
if(Xnum){
shi=9;
}else{
if(Dnum){
Cnum++;
bai=Cnum+5;
}else{
Cnum++;
bai++;
}
}
}
if(s[i]=='D'){
if(Cnum){
bai=4;
}else{
bai=5;
}
Dnum=1;
}
if(s[i]=='X'){
if(Inum){
ge=9;
}else{
if(Lnum){
Xnum++;
shi=Xnum+5;
}else{
Xnum++;
shi++;
}
}
}
if(s[i]=='L'){
if(Xnum){
shi=4;
}else{
shi=5;
}
Lnum=1;
}
if(s[i]=='I'){
if(Vnum){
Inum++;
ge=Inum+5;
}else{
Inum++;
ge++;
}
}
if(s[i]=='V'){
if(Inum){
ge=4;
}else{
ge=5;
}
Vnum=1;
}
}
int result=qian*1000+bai*100+shi*10+ge;
return result;
}
};
Input is guaranteed to be within the range from 1 to 3999.
针对罗马字符出现的每个位上所有情况考虑进去,得到相应整形数字
class Solution {
public:
int romanToInt(string s) {
int qian=0,bai=0,shi=0,ge=0;
int Cnum=0,Dnum=0,Mnum=0,Xnum=0,Lnum=0,Inum=0,Vnum=0;
for(int i=0;i<s.length();i++){
if(s[i]=='M'){
if(Cnum){
bai=9;
}else{
qian++;
}
}
if(s[i]=='C'){
if(Xnum){
shi=9;
}else{
if(Dnum){
Cnum++;
bai=Cnum+5;
}else{
Cnum++;
bai++;
}
}
}
if(s[i]=='D'){
if(Cnum){
bai=4;
}else{
bai=5;
}
Dnum=1;
}
if(s[i]=='X'){
if(Inum){
ge=9;
}else{
if(Lnum){
Xnum++;
shi=Xnum+5;
}else{
Xnum++;
shi++;
}
}
}
if(s[i]=='L'){
if(Xnum){
shi=4;
}else{
shi=5;
}
Lnum=1;
}
if(s[i]=='I'){
if(Vnum){
Inum++;
ge=Inum+5;
}else{
Inum++;
ge++;
}
}
if(s[i]=='V'){
if(Inum){
ge=4;
}else{
ge=5;
}
Vnum=1;
}
}
int result=qian*1000+bai*100+shi*10+ge;
return result;
}
};
相关文章推荐
- python写算法题:leetcode: 13. Roman to Integer
- 【LeetCode】13. Roman to Integer (2 solutions)
- [Leetcode] 13. Roman to Integer
- LeetCode 13. Roman to Integer -- Easy
- LeetCode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- leetcode:Reverse Integer(反转数字)【算法面试题】
- leetcode 13. Roman To Integer
- leetcode 每日一题 13. Roman to Integer
- [LeetCode]13. Roman to Integer
- 【Leetcode】:13. Roman to Integer 问题 in JAVA
- 【LeetCode-面试算法经典-Java实现】【007-Reverse Integer(翻转整数)】
- LeetCode - 13. Roman to Integer
- 算法中可以使用不等式变换避免溢出,leetcode:Sqrt(x) ,BigInteger处理溢出
- leetcode 13. Roman to Integer
- LeetCode --- 13. Roman to Integer
- 【LeetCode-面试算法经典-Java实现】【013-Roman to Integer (罗马数字转成整数)】
- 13. Roman to Integer leetcode Python 2016 new Season
- Leetcode 13. Roman to Integer(python)
- Leetcode 13. Roman to Integer