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;
}
};