1.罗马字符转整数
这道题主要是需要用哈希表来做
所以要记住哈希表的使用方法
map<char,int>m;
赋值的时候是
m[‘L’]=500;
这就是哈希表的使用方法
注意2:
其实这道题,设置完字母的大小顺序后
只要判断它的顺序反了之后 就对它进行减操作
如果顺序没反的话 就正常进行加操作即可
class Solution {
public:
int romanToInt(string s) {
int len=s.size();
map<char,int>m;
m['I']=1;
m['V']=5;
m['X']=10;
m['L']=50;
m['C']=100;
m['D']=500;
m['M']=1000;
int pos=0;
int neg=0;
for(int i=0;i<len-1;i++){
if(m[s[i]]<m[s[i+1]]){
neg-=m[s[i]];
}
else{
pos+=m[s[i]];
}
}
pos+=m[s[len-1]];
return pos+neg;
}
};