文章目录
以下题目按 高频考点和 核心能力要求分类整理,提供简洁清晰的解题思路与JavaScript实现。
一、字符串处理类
1. 最长回文子串
题目:给定字符串 s
,找到 s
中最长的回文子串。
核心思路:中心扩散法(时间复杂度 O(n²))。
function longestPalindrome(s) {
let max = '';
for (let i = 0; i < s.length; i++) {
// 处理奇偶长度两种情况
helper(i, i); // 奇数长度(如 "aba")
helper(i, i + 1); // 偶数长度(如 "abba")
}
function helper(l, r) {
while (l >= 0 && r < s.length && s[l] === s[r]) {
l--;
r++;
}
const current = s.slice(l + 1, r);
if (current.length > max.length) max = current;
}
return max;
}
2. 字符串转驼峰命名
题目:将 background-color
转换为 backgroundColor
。
核心思路:正则匹配分隔符后转大写。
function toCamelCase(str) {
return str.replace(/[-_](.)/g, (_, c) => c.toUpperCase());
}
二、数组操作类
1. 两数之和
题目:找出数组中两数之和等于目标值的索引。
核心思路:哈希表存储差值,时间复杂度 O(n)。
function twoSum(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (map.has(complement)) return [map