当前位置: 首页 > news >正文

百度建站平台官网长治推广型网站开发

百度建站平台官网,长治推广型网站开发,10g空间网站做视频网站,福田蒙派克配件10.给你一个字符串 s 和一个字符规律 p#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配#xff0c;是要涵盖 整个 字符串 s的#xff0c;而不是部分字符串。 示例 1#xff1a; 输入#xff1a;s… 10.给你一个字符串 s 和一个字符规律 p请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配是要涵盖 整个 字符串 s的而不是部分字符串。 示例 1 输入s “aa”, p “a” 输出false 解释“a” 无法匹配 “aa” 整个字符串。 示例 2: 输入s “aa”, p “a*” 输出true 解释因为 * 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 ‘a’。因此字符串 “aa” 可被视为 ‘a’ 重复了一次。 示例 3 输入s ab, p .* 输出true 解释.* 表示可匹配零个或多个*任意字符.。 首先基本情况就是我们会想到同时遍历两个字符串s 为被匹配字符串p 为正则字符串在匹配过程中 s 是不断往后遍历的但 p 不一定因为 * 和前面的字符组合可以表示多个字符。也就是说我们的匹配过程其实可以认为是不断看 s[:i] 和 p[:j] 是否匹配python 语法就是其实就是字符串前 i-1 位和前 j-1 位dp 的感觉是不是就来了从 s[:1] 和 p[:1]即两个字符串的首位字符 开始匹配每次添加 s 或 p 的一个字符看是否匹配最终得到两个完整字符串是否匹配。那么状态定义就来了设 dp[i][j] 为 s 的前 i 个字符与 p 的前 j 个字符时候匹配。状态转移方程因为 dp[0][0] 对应的是空字符所以需要注意 dp[i][j] 对应的新添加的字符是 s[i - 1] 和 p[j - 1]。上面提到了匹配过程唯一的变数其实就在 p所以以它来划分情况找到 dp[i][j] 和 dp[i-1][j] 或者 dp[i][j-1] 或者 dp[i-1][j-1] 的联系。dp[i][j] 对应的是 s[i-1] 和 p[j-1]我们唯一不确定的其实就是 p 中有没有 . 和 *并且其实 * 包含的情况更多那么我们就把 . 划分到不包含 * 的情况中这里说的包含不是整个字符而是前一个状态是否包含具体继续往下看。要匹配的话首先如果 p[j-1] 为 * 以下三种情况 dp[i][j] 可以匹配成功 dp[i][j-2] 为 true 让 p[j-2] 的某个字符和 p[j-1] 的 * 组合为该字符出现 0 次比如 aa 和 b*aa跳过 b*dp[i-1][j] p[j-2] s[i-1]没加 s[i-1] 之前就匹配了现在让 p[j-2] 和 p[j-1] 组合成s[i-1]*即 p 包含一个或多个 s[i-1] 比如 aaa 和 a* 的匹配dp[i-1][j] p[j-2] .没加 s[i-1] 之前就匹配了现在让 p[j-2] 和 p[j-1] 组合成.*也等于 p 包含一个或多个 s[i-1] 比如 aaa 和 .* 的匹配 如果 p[j-1] 不为 *以下两种情况能匹配成功 dp[i-1][j-1] p[j-1] s[i-1]除了新加的两个字符之前都匹配且新加的两个字符为同一个字符dp[i-1][j-1] p[j-1] .除了新加的两个字符之前都匹配且新加的 p[j-1] 为任意字符 . public boolean isMatch(String s, String p) {int ms.length()1,np.length()1;boolean[][] dp new boolean[m][n];dp[0][0] true;for(int j2;jn;j2)dp[0][j] dp[0][j-2] p.charAt(j - 1) *;for(int i 1; i m; i) {for(int j 1; j n; j) {if(p.charAt(j - 1) *) {if(dp[i][j - 2]) dp[i][j] true; else if(dp[i - 1][j] s.charAt(i - 1) p.charAt(j - 2)) dp[i][j] true;else if(dp[i - 1][j] p.charAt(j - 2) .) dp[i][j] true;} else {if(dp[i - 1][j - 1] s.charAt(i - 1) p.charAt(j - 1)) dp[i][j] true;else if(dp[i - 1][j - 1] p.charAt(j - 1) .) dp[i][j] true;}}} return dp[m-1][n-1];}也可以简化成三元运算和与或运算 public boolean isMatch(String s, String p) {int m s.length() 1, n p.length() 1;boolean[][] dp new boolean[m][n];dp[0][0] true;// 初始化首行for(int j 2; j n; j 2)dp[0][j] dp[0][j - 2] p.charAt(j - 1) *;// 状态转移for(int i 1; i m; i) {for(int j 1; j n; j) {dp[i][j] p.charAt(j - 1) * ?dp[i][j - 2] || dp[i - 1][j] (s.charAt(i - 1) p.charAt(j - 2) || p.charAt(j - 2) .) :dp[i - 1][j - 1] (p.charAt(j - 1) . || s.charAt(i - 1) p.charAt(j - 1));}}return dp[m - 1][n - 1];}
http://www.zqtcl.cn/news/891998/

相关文章:

  • 哈尔滨网站建设咨询辽宁建设工程信息网怎么看项目经理是不是被锁住
  • 成立做网站的公司搭建网站有费用吗
  • 标志设计说明案例北京网站优化seo
  • 国外app设计网站佛山网站推广市场
  • 北京矿建建设集团有限公司 网站科技软件下载
  • 公司建网站要多少钱wordpress轮播框
  • 怎么看一个网站什么语言做的全网最新首码项目
  • 深圳网站建设ue网站空间和流量
  • 网站前端设计要做什么游仙建设局官方网站
  • 大型门户网站建设哪家好进一步加大网站集约化建设力度
  • 网站里面那些工作是做晚上兼职的钱包网站建设策划
  • 网站开发实现的环境自豪地采用wordpress 怎么去掉
  • ic商城网站建设网站备案关闭影响排名
  • qq官方网站进入wordpress调用文章某个分类
  • 南充网站建设设计略奥企业网站管理系统怎么修改密码
  • 网站建设里的知识360云主机可以建设网站吗
  • 创建网站代码上海网络公司查询
  • 电子商务网站建设与管理实训报告百度权重划分等级
  • 网站建设响应式是什么医院网站建设方案策划书
  • 开鲁网站seo不用下载男女做羞羞事动画网站免费
  • 做网站客户需求新乡专业做网站多少钱
  • 邢台建设银行官方网站二维码生成器app下载
  • 自己怎么做网站游戏做网站就是做app
  • 怎样做一元购网站wordpress+淘客代码
  • 网站建设发展现状贵阳有哪些做网站的公司
  • 微博上如何做网站推广蝉知和wordpress
  • 泷澄建设集团网站北京建设执业资格注册网站
  • 门户网站建设情况报告深圳龙岗房价多少钱一平方米
  • 网站建设备案是什么ps培训班
  • 深圳网站推广优化wordpress 运行速度慢