关于算法:leetCode第13题和第14题罗马数字转整数最长公共前缀

40次阅读

共计 956 个字符,预计需要花费 3 分钟才能阅读完成。

1.leetCode 第 13 题
需要:https://leetcode-cn.com/probl…

重点提醒:通常状况下,罗马数字中小的数字在大的数字的左边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的右边,所示意的数等于大数 5 减小数 1 失去的数值 4。同样地,数字 9 示意为 IX。这个非凡的规定只实用于以下六种状况:
I 能够放在 V (5) 和 X (10) 的右边,来示意 4 和 9。
X 能够放在 L (50) 和 C (100) 的右边,来示意 40 和 90。
C 能够放在 D (500) 和 M (1000) 的右边,来示意 400 和 900。

 function print(s) {let map = {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000};
    let total = 0;
    for (let i = 0; i < s.length; i++) {
       /*   计算 total 如果以后的数字小于其前面的一位那么就意味着合乎下面的六种状况 那么计算逻辑应该是让总数减去以后位 而后再加上
       前面一位就是咱们想要的后果 比方 total=0;  IV=4  0-1+5=4
         */
      total = map[s[i + 1]] && map[s[i]] < map[s[i + 1]]? total - map[s[i]]: total + map[s[i]];
    }
    return total;
  }

2.leetCode 第 14 题
需要:https://leetcode-cn.com/probl…

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输出:strs = ["flower","flow","flight"]
输入:"fl"

示例 2:输出:strs = ["dog","racecar","car"]
输入:""
解释:输出不存在公共前缀。
function print(strs) {if (strs == null || strs.length == 0) return "";
    for (let i = 0; i < strs[0].length; i++) {let char = strs[0][i];
      for (let j = 1; j < strs.length; j++) {if (strs[j][i] !== char) return strs[0].substring(0, i);
      }
    }
    return strs[0];
  }

正文完
 0