13. Roman to Integer
2016-02-10 23:48
363 查看
罗马数字前面的比后面的小就是减前面的数字,用for每次比较两个的话最后一个数溢出了,所以循环前面的n-1个 最后一个肯定是加上的。
public class Solution {
public int romanToInt(String s) {
if(s.length()<1)return 0;
int sum=0;
int i=0;
for(i=0;i<s.length()-1;i++){
char c=s.charAt(i);
char d=s.charAt(i+1);
if(getValue(c)<getValue(d)){
sum=sum-getValue(c);
}
else{
sum=sum+getValue(c);
}
}
char d=s.charAt(s.length()-1);
return sum+getValue(d);
}
public int getValue(char c){
switch(c){
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
}
public class Solution {
public int romanToInt(String s) {
if(s.length()<1)return 0;
int sum=0;
int i=0;
for(i=0;i<s.length()-1;i++){
char c=s.charAt(i);
char d=s.charAt(i+1);
if(getValue(c)<getValue(d)){
sum=sum-getValue(c);
}
else{
sum=sum+getValue(c);
}
}
char d=s.charAt(s.length()-1);
return sum+getValue(d);
}
public int getValue(char c){
switch(c){
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
}
相关文章推荐
- 结合Scikit-learn介绍几种常用的特征选择方法
- 206. Reverse Linked List
- jQuery的Ajax应用
- 2016-2-10 linux基础学习12
- 理解js闭包(二)
- POJ 2516Minimum Cost(最小费用最大流)
- 前端试题-什么是css sprite?优缺点?
- Android开发学习之路--UI之ListView
- ListView 使用 ViewHolder
- Block的详细使用和面试注意点
- BaseAdapter中重写getview的心得以及发现convertView回收的机制
- View的setTag和getTag方法
- 阅读整理《从0到1》
- android 获取屏幕高度和宽度 的方法
- 360昆仑万维12亿美元收购Opera
- 数据结构之哈希表
- 关于OF和CF
- 手势操作知识大餐 ——iOS
- poj_3974 Palindrome(最长回文子串)
- 如何节省网站流量