You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化LeetCode 392 Is Subsequence正则解法的性能?

正则表达式优化LeetCode 392《Is Subsequence》性能问题

已经用双指针法解决了LeetCode 392《Is Subsequence》问题,现尝试用正则表达式实现。该实现对小输入表现正常,但处理大输入时速度极慢。

问题概述

给定两个字符串s和t,返回true如果s是t的子序列,否则返回false。子序列是指从原字符串中删除部分(可删除0个)字符后,不改变剩余字符相对位置形成的新字符串(例如,"ace"是"abcde"的子序列,而"aec"不是)。

示例

  • 示例1:输入: s = "abc", t = "ahbgdc" 输出: true
  • 示例2:输入: s = "axc", t = "ahbgdc" 输出: false

约束条件

  • 0 ≤ s.length ≤ 100
  • 0 ≤ t.length ≤ 10000
  • s和t仅由小写英文字母组成

当前代码

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isSubsequence = function (s, t) {
    if (s.length > t.length) {
        return false;
    }

    let regex_string = "\\w*";
    for (let i = 0; i < s.length; i++) {
        regex_string += s[i] + "\\w*";
    }

    const regex = new RegExp(regex_string);
    return regex.test(t);
};


let s = "rjufvjafbxnbgriwgokdgqdqewn";
let t = "mjmqqjrmzkvhxlyruonekhhofpzzslupzojfuoztvzmmqvmlhgqxehojfowtrinbatjujaxekbcydldglkbxsqbbnrkhfdnpfbuaktupfftiljwpgglkjqunvithzlzpgikixqeuimmtbiskemplcvljqgvlzvnqxgedxqnznddkiujwhdefziydtquoudzxstpjjitmiimbjfgfjikkjycwgnpdxpeppsturjwkgnifinccvqzwlbmgpdaodzptyrjjkbqmgdrftfbwgimsmjpknuqtijrsnwvtytqqvookinzmkkkrkgwafohflvuedssukjgipgmypakhlckvizmqvycvbxhlljzejcaijqnfgobuhuiahtmxfzoplmmjfxtggwwxliplntkfuxjcnzcqsaagahbbneugiocexcfpszzomumfqpaiydssmihdoewahoswhlnpctjmkyufsvjlrflfiktndubnymenlmpyrhjxfdcq";

isSubsequence(s, t);

提问

如何在仍使用正则表达式的前提下,提升上述代码的性能?


内容的提问来源于stack exchange,提问作者Phalgun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:30:23