leetcode中如何使用通配符
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下leetcode中如何使用通配符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定一个字符串 (s) 和
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
西安纸贵互联网科技有限公司
互联网的科技
互联网科技保险
互联网下的科技发展
金融科技与互联网金融
期待互联网科技
互联网科技公司电话
凡科互联网科技
科技互联网公司logo
盛创互联网科技有限公司
中国最先进互联网科技公司
现代互联网科技股
互联网与医疗科技
搜狐科技互联网
翼展科技 首家互联网医院
华中科技大学互联网的牛人
互联网金融科技元年
21世纪互联网科技成就
互联网科技包装股份有限公司上市
兰石爱特工业互联网科技分公司
耶加雪菲
互联网金融科技
A股互联网金融科技公司
致聘互联网科技
博兴的互联网电子科技公司
玖二柒互联网科技公司待遇
阿大互联网科技有限公司
有人说阿里系是互联网科技企业
下一代互联网重大应用科技园
艺电能源互联网科技有限公司招聘