Day8

[Day8]

1. Roman to Integer

문제 링크: https://leetcode.com/problems/roman-to-integer/

class Solution {
public:
    int romanToInt(string s) {
        map<char, int> m{{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}};
        int res=0;
        for(int i=0; i<s.size(); i++){
            if(m[s[i]]>=m[s[i+1]]){
                res+=m[s[i]];
            }
            else{
              res-=m[s[i]];
            }
        }
        return res;
    }
};

2. Longest Common Prefix

문제 링크: https://leetcode.com/problems/longest-common-prefix/

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if(strs.size()==0){
            return "";
        }
        string prefix=strs[0];
        for(int i=1;i<strs.size();i++){
            int j=0;
            while(j<strs[i].size() && strs[i][j]==prefix[j]){
                j++;
            }
            prefix=prefix.substr(0,j);
        }
        if(prefix.size()==0) return "";
        return prefix;
    }
};

3. Add Binary

문제 링크: https://leetcode.com/problems/add-binary/

class Solution {
public:
    string addBinary(string a, string b) {
        string result="";
        int carry = 0;
        for(int i=a.size()-1, j=b.size()-1; i>=0 || j>=0; i--, j--){
            int numa=0, numb=0;
            if(i>=0){
                numa = a[i]-'0';
            }
            if(j>=0){
                numb = b[j]-'0';
            }
            if(numa+numb+carry>=2){
                if(numa+numb+carry == 2){
                    result = "0"+result;
                    carry = 1;
                }
                else{
                    result = "1"+result;
                    carry = 1;
                }
            }
            else{
                if(numa+numb+carry==1){
                    result = "1"+result;
                }
                else{
                    result = "0"+result;
                }
                carry = 0;
            }
        }
        if(carry == 1){
            result = "1"+result;
        }
        return result;
    }
};