HOT100——正则表达式匹配(JS实现)

简介: HOT100——正则表达式匹配(JS实现)

题目描述

image.png

解题思路

  • 本题采用的是回溯的思想。
  • 主要需要考虑的情况有以下几种
  1. 字符串和模式串的字符相等。
  2. 模式串的字符为点。
  3. 模式串为*的时候,分两种情况讨论,一是0次,一是多次。

解题代码

var isMatch = function (s, p) {
    return helper(s, p);
    function helper(str, pattern) {
        if (pattern.length === 0) {
            if (str.length === 0) {
                return true;
            } else {
                return false;
            }
        }
        // 不是 * 号的情况
        if (str.length > 2 && (str[0] === pattern[0] || pattern[0] === '.') && pattern[1] !== '*') {
            res = helper(str.slice(1),pattern.slice(1));
        } else if (str.length > 0 && (str[0] === pattern[0] || pattern[0] === '.') && pattern[1] === '*'){
            // 这是 *号 代表0次的情况        多次的情况
            res = helper(str,pattern.slice(2)) || helper(str.slice(1),pattern)
        } else {
            if (str.length > 0 && (str[0] === pattern[0] || pattern[0] === '.') && pattern[1] !== '*') {
                res = helper(str.slice(1),pattern.slice(1)); 
            } else if (pattern[1] === '*') {
                res = helper(str,pattern.slice(2))
            } else {
                return false;
            }
        }
        return res;
    }
};
复制代码

启示

  • 学会在多种限制条件下使用递归回溯解决问题。

参考链接(优先看下边的这个)

juejin.cn/post/696319…


相关文章
|
1月前
|
JavaScript 前端开发
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
110 1
|
2月前
|
自然语言处理 JavaScript 前端开发
JavaScript 正则表达式
JavaScript 正则表达式
18 3
|
3月前
|
JavaScript 前端开发
js中通过正则表达式验证邮箱是否合法
这篇文章提供了一个JavaScript示例,通过正则表达式在网页上验证用户输入的邮箱地址是否合法,并给出了相应的提示信息。
js中通过正则表达式验证邮箱是否合法
|
5月前
|
机器学习/深度学习 JavaScript 前端开发
JavaScript中的正则表达式详细展示
JavaScript中的正则表达式详细展示
39 6
|
5月前
|
JavaScript 前端开发 测试技术
JavaScript进阶-正则表达式基础
【6月更文挑战第21天】正则表达式是处理字符串的利器,JavaScript中广泛用于搜索、替换和验证。本文讲解正则基础,如字符匹配、量词和边界匹配,同时也讨论了常见问题和易错点,如大小写忽略、贪婪匹配,提供代码示例和调试建议。通过学习,开发者能更好地理解和运用正则表达式解决文本操作问题。
47 1
|
4月前
|
JavaScript 数据安全/隐私保护
js 常用正则表达式【实用】
js 常用正则表达式【实用】
26 0
|
4月前
|
存储 JavaScript 前端开发
|
5月前
|
XML JavaScript 数据安全/隐私保护
一篇文章讲明白js常用js正则表达式大全
一篇文章讲明白js常用js正则表达式大全
35 0
|
6月前
|
前端开发 JavaScript
前端 js 经典:正则表达式
前端 js 经典:正则表达式
56 2
|
Web App开发 JavaScript 前端开发