如何优化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
相关产品推荐
相关产品推荐

