Leetcode 3407. Substring Matching Pattern

  • [Leetcode 3407. Substring Matching Pattern](#Leetcode 3407. Substring Matching Pattern)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题是一道leetcode easy的题目,照说应该没啥的,不过实际我做的时候在这里卡了一下,所以还是拿过来稍微记录一下好了。

这道题核心还是字符串的匹配,不过麻烦的点在于*符号可以替换一个或多个字符,然后剩下的部分又会是连续的,因此这里相当于是一个另类的lcs匹配问题。

我最后给的解答还是比较暴力的,就是先按照*将pattern字符串p进行切分,然后顺序考察其中的每一个非空子串是否可以顺序在原始字符串s当中找到。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def hasMatch(self, s: str, p: str) -> bool:
        p = p.strip("*").split("*")
        i, n = 0, len(s)
        for sub in p:
            if sub == "":
                continue
            while i < n and not s[i:].startswith(sub):
                i += 1
            if i >= n:
                return False
            i += len(sub)
        return True

提交代码评测得到:耗时0ms,占用内存17.7MB。

相关推荐
flashlight_hi4 小时前
LeetCode 分类刷题:141. 环形链表
javascript·算法·leetcode
Kt&Rs5 小时前
11.9 LeetCode 题目汇总与解题思路
算法·leetcode
ゞ 正在缓冲99%…5 小时前
leetcode1547.切棍子的最小成本
数据结构·算法·leetcode·动态规划
2401_841495646 小时前
【LeetCode刷题】移动零
数据结构·python·算法·leetcode·数组·双指针法·移动零
开心星人6 小时前
Leetcode hot100 Java刷题(二)
java·算法·leetcode
hn小菜鸡6 小时前
LeetCode 153.寻找旋转排序数组中的最小值
数据结构·算法·leetcode
蒙奇D索大10 小时前
【算法】递归算法的深度实践:深度优先搜索(DFS)从原理到LeetCode实战
c语言·笔记·学习·算法·leetcode·深度优先
一匹电信狗10 小时前
【C++11】右值引用+移动语义+完美转发
服务器·c++·算法·leetcode·小程序·stl·visual studio
小年糕是糕手11 小时前
【数据结构】常见的排序算法 -- 选择排序
linux·数据结构·c++·算法·leetcode·蓝桥杯·排序算法
电子_咸鱼12 小时前
动态规划经典题解:单词拆分(LeetCode 139)
java·数据结构·python·算法·leetcode·线性回归·动态规划