Open Linjiayu6 opened 4 years ago
类似 https://github.com/Linjiayu6/FE-Notes/issues/11#issuecomment-657017143 字符串判断是否回文
api使用
function fn(str) {
if (str.length === 0 || str.length === 1) return true;
return str.split('').reverse().join('') === str;
}
不使用api
function fn(str) {
if (str.length === 0 || str.length === 1) return true;
var i = 0, j = str.length - 1
while (i < j) {
if (str[i] !== str[j]) return false
i += 1
j -= 1
}
return true
}
/**
* 从尾部开始指针计算
* [192] [19]
* i = num1.length - 1, j = num2.length - 1
* 循环条件 i >= 0 || j >= 0 只有当都小于0, 才结束
* x = 2, y = 9, count = 0
* => result = 1 count 1
* x = 9, y = 1, count = 1
* => result = 11, count = 1
* x = 1, y = 0(单独补0), count = 1
* => result = 211
*
* 最后如果有count还是1的情况, 再最前面补上
*/
var addStrings = function(num1, num2) {
var i = num1.length - 1, j = num2.length - 1
var result = ''
var count = 0
while (i >= 0 || j >= 0) {
var x = i >= 0 ? Number(num1[i]) : 0
var y = j >= 0 ? Number(num2[j]) : 0
var val = x + y + count
if (val >= 10) {
val = val - 10
result = val.toString() + result
count = 1
} else {
result = val.toString() + result
count = 0
}
i -= 1
j -= 1
}
return count === 1 ? '1' + result : result
};
1 - 14. 最长公共前缀
前缀相同即可