LeetCode 344.反转字符串
📖 考察点
📖 题意理解
💡 解题思路
思路一:
思路二:
🔑 关键点总结
💻 代码实现
JavaScript
/**
* @param {character[]} s
* @return {void} Do not return anything, modify s in-place instead.
*/
var reverseString = function (s) {
let left = 0;
let right = s.length - 1;
while (left < right) {
let temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
return s;
};
⏱️ 复杂度分析
📚 总结与反思
LeetCode 541. 反转字符串II
📖 考察点
📖 题意理解
💡 解题思路
思路一:
思路二:
🔑 关键点总结
💻 代码实现
JavaScript
var verseStr = function (s, k) {
const len = s.length;
let resArr = s.split("");
for (let i = 0; i < len; i += 2 * k) {
let l = i - 1,
r = i + k > len ? len : i + k;
while (++l < --r) [resArr[l], resArr[r]] = [resArr[l], resArr[r]];
}
return resArr.join("");
};
⏱️ 复杂度分析
📚 总结与反思
LeetCode ### 卡码网:54.替换数字
📖 考察点
📖 题意理解
💡 解题思路
思路一:
思路二:
🔑 关键点总结
💻 代码实现
JavaScript
function main() {
const num0 = "0".charCodeAt();
const num9 = "9".charCodeAt();
const a = "a".charCodeAt();
const z = "z".charCodeAt();
function isAZ(str) {
return str >= a && str <= z;
}
function isNumber(str) {
return str >= num0 && str <= num9;
}
rl.on("line", (input) => {
let n = 0;
for (let i = 0; i < input.length; i++) {
const val = input[i].charCodeAt();
if (isNumber(val)) {
n+= 6;
}
if (isAZ(val)) {
n++;
}
}
const ans = new Array(n).fill(0);
let index = input.length - 1;
for (let i = n - 1; i >= 0; i--) {
const val = input[index].charCodeAt();
if (isAZ(val)) {
ans[i] = input[index];
}
if (isNumber(val)) {
ans[i] = "r";
ans[i - 1] = "e";
ans[i - 2] = "b";
ans[i - 3] = "m";
ans[i - 4] = "u";
ans[i - 5] = "n";
i -= 5;
}
index--;
}
console.log(ans.join(""));
})
}
main();
⏱️ 复杂度分析
📚 总结与反思
比较简单