13. 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
给定一个罗马数字,将其转换成整数。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/roman-to-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
int romanToInt(string s) {
int result = 0;
for(int i=0; i<s.length(); i++){
int temp = 0;
switch(s[i]){
case 'I':
if(i+1 < s.length() && (s[i+1] == 'V' || s[i+1] == 'X')){
temp = -1;
} else {
temp = 1;
}
break;
case 'V':
temp = 5;
break;
case 'X':
temp = 10;
if(i+1 < s.length() && (s[i+1] == 'L' || s[i+1] == 'C')){
temp = -10;
} else {
temp = 10;
}
break;
case 'L':
temp = 50;
break;
case 'C':
temp = 100;
if(i+1 < s.length() && (s[i+1] == 'D' || s[i+1] == 'M')){
temp = -100;
} else {
temp = 100;
}
break;
case 'D': temp = 500; break;
case 'M': temp = 1000; break;
}
result = result + temp;
}
return result;
}
};
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int n = strs.size();
bool flag = true;
string result = "";
for(int i=0; i<strs[0].length(); i++){
for(int j=0; j<n; j++){
if(j+1 < n && strs[j][i] != strs[j+1][i]){
flag = false;
}
}
if(flag){
result += strs[0][i];
} else {
break;
}
}
return result;
}
};