class Solution {
public int romanToInt(String s) {
char[] char1= s.toCharArray();
for (int i = 0; i < char1.length; i++) {
switch (char1[i]){
case 'I':
char1[i]=1;
break;
case 'V':
char1[i]=5;
break;
case 'X':
char1[i]=10;
break;
case 'L':
char1[i]=50;
break;
case 'C':
char1[i]=100;
break;
case 'D':
char1[i]=500;
break;
case 'M':
char1[i]=1000;
break;
}
}
int sum=0;
for (int i = 0; i < char1.length-1; i++) {
if (char1[i]<char1[i+1]){
sum-=char1[i];
}else{
sum+=char1[i];
}
}
return sum+char1[char1.length-1];
}
}
14.最长公共前缀
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length==0) return "";
char[] c = strs[0].toCharArray();
int sum = Integer.MAX_VALUE;
for(String str :strs){
char[] temp = str.toCharArray();
int index = 0;
while(index<c.length&&index<temp.length){
if(temp[index]!= c[index]){
break;
}
index++;
}
sum = Math.min(sum,index);
if(sum==0) {
return "";
}
}
return strs[0].substring(0, sum);
}
}
15.三数之和
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
Arrays.sort(nums);
List<List<Integer>> ans =new ArrayList<>();
for(int i=0;i<nums.length-2;i++){
if(i==0||nums[i-1]!=nums[i]){
List<List<Integer>> next = twosum(nums,i+1,-nums[i]);
for(List<Integer> cur : next){
cur.add(0,nums[i]);
ans.add(cur);
}
}
}
return ans;
}
public static List<List<Integer>> twosum(int[] nums, int i, int target){
int left = i;
int right = nums.length-1;
List<List<Integer>> temp = new ArrayList<>();
while (left<right){
if(nums[left]+nums[right]>target){
right--;
}else if(nums[left]+nums[right]<target){
left++;
}else {
if(left==i||nums[left-1]!=nums[left]){
List<Integer> dangqian = new ArrayList<>();
dangqian.add(nums[left]);
dangqian.add(nums[right]);
temp.add(dangqian);
}
left++;
}
}
return temp;
}
}