leetcode刷题

来源:互联网 发布:网络电影大全免费爱情 编辑:程序博客网 时间:2024/06/07 07:37

13.Roman to Integer

/** * @param {string} s * @return {number} */var romanToInt = function(s) {    var map={};    map["I"]=1;map["V"]=5;map["X"]=10;map["L"]=50;map["C"]=100;map["D"]=500;map["M"]=1000;    var res=map[s[s.length-1]];    for(i=s.length-1;i>0;i--)    {        if(map[s[i-1]]>=map[s[i]])        {            res=res+map[s[i-1]];        }        else            res=res-map[s[i-1]];    }    return res;};

遇到的问题:
不懂罗马数字的表示方法。
本来想从正序一点点看是否后一个比前一小,再后一个比前一大。很复杂。
解决方案:
学习了一下罗马数字表示方法。
直接倒序看,前一个数比当前数小则相减,大则相加。
map的用法。map[key]可以查到value。

14 . Longest Common Prefix

/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function(strs) {    var len = strs.length;    if(len===0){        return("");        }        strs.sort();    var str1 = strs[0];    var str2 = strs[len-1];    var min_len = Math.min(str1.length,str2.length);    for(i = 0;i < min_len;i++){        if(str1.charAt(i) !== str2.charAt(i))            break;    }    var prefix = str1.substring(0,i);    return prefix;};
原创粉丝点击