Bare Algo
搜索算法...
Ctrl+K
字符串
字符串匹配、子串搜索、回文判断等问题。
算法题
(11)
3. 无重复字符的最长子串
中等
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
哈希表
字符串
滑动窗口
20. 有效的括号
简单
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
栈
字符串
28. 找出字符串中第一个匹配项的下标
简单
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。
双指针
字符串
字符串匹配
76. 最小覆盖子串
困难
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。
哈希表
字符串
滑动窗口
14. 最长公共前缀
简单
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
字符串
字典树
438. 找到字符串中所有字母异位词
中等
给定两个字符串 s 和 p,找到 s 中所有是 p 的 字母异位词 的子串,返回这些子串的起始索引。
哈希表
字符串
滑动窗口
208. 实现 Trie (前缀树)
中等
Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。
设计
字典树
哈希表
字符串
5. 最长回文子串
中等
给你一个字符串 s,找到 s 中最长的回文子串。
字符串
动态规划
567. 字符串的排列
中等
给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。
哈希表
双指针
字符串
滑动窗口
151. 反转字符串中的单词
中等
给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
双指针
字符串
344. 反转字符串
简单
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
双指针
字符串
实际应用
(7)
搜索框
中等
实现搜索功能中的子串查找、搜索关键词高亮显示,以及计算最短或最长的匹配窗口。
字符串匹配
搜索
高亮
路由匹配/模板解析
中等
解析 URL 路由参数(如 `/user/:id`),提取路径中的变量;或解析模板字符串中的占位符(如 `{{value}}`)进行替换。
正则
状态机
路由
模板引擎
输入校验
简单
校验用户输入的合法性,如检测括号是否闭合、HTML 标签是否匹配,以及 URL 编码解码等。
栈
字符串处理
表单
校验
富文本/编辑器
困难
实现简单的代码高亮(Tokenize)、关键词的局部替换,或检测回文/对称结构。
字符串遍历
编辑器
文本处理
命令面板 (Command Palette)
中等
实现类似 VS Code 的命令面板或联想输入功能,使用 Trie 树优化前缀匹配效率。
字典树
搜索
交互
语法/标记解析
困难
解析 Markdown 或 HTML 文本,采用“扫描 + 状态机”的思路将文本转换为 AST 或 DOM 结构。
状态机
解析器
编译原理
国际化处理 (I18n)
简单
处理多语言文本的 Trim、Normalize(归一化)、大小写折叠(Case Folding)以及特定字符的归一化处理。
字符串处理
国际化
格式化