165. 比较版本号
输入:version1 = "0.1", version2 = "1.1"
输出:-1
解释:version1 中下标为 0 的修订号是 "0",
version2 中下标为 0 的修订号是 "1" 。0 < 1,
所以 version1 < version2
- 先把两个字符串转换成数组
- 取最长的长度
- 遍历
- 如果没有值就设置成0
- 否则把数字前的0去除
var compareVersion = function(version1, version2) {
let s1 = version1.split('.')
let s2 = version2.split('.')
let n = Math.max(s1.length,s2.length)
for (let i = 0;i < n;i++) {
let code1 = s1[i] === undefined ? 0 : parseInt(s1[i])
let code2 = s2[i] === undefined ? 0 : parseInt(s2[i])
if (code1 > code2) {
return 1;
} else if (code1 < code2) {
return -1;
}
}
return 0
};
22. 括号生成
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
var generateParenthesis = function(n) {
const res = [];
function dfs(left,right,str) {
if (str.length == 2 * n) {
res.push(str)
return
}
if (left > 0) {
dfs(left - 1,right,str + '(')
}
if (left < right) {
dfs(left,right - 1,str + ')')
}
}
dfs(n,n,'')
return res;
};