-
罗马数字转整数(*)
image.png
思路:
如果后面的数字大于当前的数字,那么就减去当前的数字即可,否则加上当前的数字
image.png
class Solution {
public HashMap<Character, Integer> map=new HashMap<>();
{
map.put('I',1);
map.put('V',5);
map.put('X',10);
map.put('L',50);
map.put('C',100);
map.put('D',500);
map.put('M',1000);
};
public int romanToInt(String s) {
int result=0;
for(int i=0;i<s.length();i++){
if(i<s.length()-1&&map.get(s.charAt(i))<map.get(s.charAt(i+1))){
result-=map.get(s.charAt(i));
}
else{
result+=map.get(s.charAt(i));
}
}
return result;
}
}
-
最长公共前缀
image.png
思路:找出数组中最短的那个字符串,然后每一位都与其他字符串进行比较,当遇到相同字符时,将该字符加入到结果字符串中;当遇到不相同的字符时,就break
class Solution {
public String longestCommonPrefix(String[] strs) {
String s = "";
int min = 10000;
int index = -1;
int flag = 1;
for (int i = 0; i < strs.length; i++) {
if (strs[i].length() < min) {
min = strs[i].length();
index = i;
}
}
for (int i = 0; i < min; i++) {
char c = strs[index].charAt(i);
for (int j = 0; j < strs.length; j++) {
if (strs[j].charAt(i) != c) {
flag = 0;
}
}
if (flag == 1) {
s += c;
} else {
break;
}
}
return s;
}
}
-
有效的括号
image.png