leetcode中如何使用通配符
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下leetcode中如何使用通配符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定一个字符串 (s) 和
千家信息网最后更新 2025年12月02日leetcode中如何使用通配符
小编给大家分享一下leetcode中如何使用通配符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。
'?' 可以匹配任何单个字符。
'*' 可以匹配任意字符串(包括空字符串)。
两个字符串完全匹配才算匹配成功。
说明:
s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符?和*。
示例 1:
输入:
s = "aa"
p = "a"
输出: false
解释: "a" 无法匹配 "aa" 整个字符串。示例 2:
输入:
s = "aa"
p = "*"
输出: true
解释: '*' 可以匹配任意字符串。
示例 3:
输入:
s = "cb"
p = "?a"
输出: false
解释: '?' 可以匹配 'c', 但第二个 'a' 无法匹配 'b'。
示例 4:
输入:
s = "adceb"
p = "*a*b"
输出: true
解释: 第一个 '*' 可以匹配空字符串, 第二个 '*' 可以匹配字符串 "dce".
示例 5:
输入:
s = "acdcb"
p = "a*c?b"
输入: false解题思路:
1,通配符和正则表达式是两个东西,正则表达式用于字符串匹配,通配符用于shell编程
2,解题思路差不多,只是边界条件和状态转移方程不同
3,状态转移方程:
if p[j]==*{
//匹配1 个或者0个
a[i][j]=a[i][j-1] ||a[i-1][j]
}else{
a[i][j]=a[i-1][j-1]&&(s[i]==s[j]||s[j]=='?')
}
由于*可能匹配0个,考虑到p有*开头的情况,所以数组大小为len(s)+1,len(p)+1
func isMatch(s string, p string) bool {if len(s) == 0 && len(p) == 0 {return true}if len(p) == 0 {return false}if len(s) == 0 {for i := 0; i < len(p); i++ {if []byte(p)[i] != '*' {return false}}return true}bs := []byte(s)bp := []byte(p)a := make([][]bool, len(s)+1)for i := 0; i < len(s)+1; i++ {a[i] = make([]bool, len(p)+1)}a[0][0] = true//a[1:i][0]=false//a[0][1:j]=a[0][j-1]&&b[j]=='*'for j := 1; j < len(p)+1; j++ {a[0][j] = a[0][j-1] && bp[j-1] == '*'}for i := 1; i < len(s)+1; i++ {for j := 1; j < len(p)+1; j++ {if bp[j-1] == '*' {//0 1a[i][j] = a[i][j-1] || a[i-1][j]} else {a[i][j] = a[i-1][j-1] && match(bs[i-1], bp[j-1])}}}return a[len(s)][len(p)]}func match(a, b byte) bool {return a == b || b == '?'}
以上是"leetcode中如何使用通配符"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
字符
字符串
输入
通配符
示例
解释
输出
篇文章
两个
内容
字母
小写
思路
方程
正则
状态
空字符
表达式
j++
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
远程连接数据库总是报错
冒险岛最多的服务器
网络安全工程师培训费用
阿里云手机端怎么登录数据库执行
大连市铭科网络技术有限公司
昌平区全过程软件开发价格走势
vb 与数据库
用什么函数对比重复数据库
图书馆服务器阵列是什么
数据库中修改数据代码
基带软件开发工程师简历模板
linux 服务器租用
数据库质疑
数据库安全管理策略
电商线上商城软件开发价格
风电场网络安全工作总结
s7令人崩溃的服务器
神威服务器
web 网络安全评估
vpn的服务器的ip地址
电脑网络安全模式正常模式死机
魔兽手机数据库
我的世界基岩版无管理服务器
数据库检索标准
数据库安全的一般方法
网络安全政治经济
广电局网络安全汇报材料
手机设置代理服务器免流
软件开发公司可以做网店吗
使用香港服务器的域名需要备案吗