网页设计专业学校优化网站排名如何

web/2025/10/8 3:03:03/文章来源:
网页设计专业学校,优化网站排名如何,一级域名跳转到二级域名,做壁纸网站的意义乘风破浪#xff1a;LeetCode真题_010_Regular Expression Matching 一、前言 关于正则表达式我们使用得非常多#xff0c;但是如果让我们自己写一个#xff0c;却是有非常大的困难的#xff0c;我们可能想到状态机#xff0c;确定#xff0c;非确定状态机确实是一种解决…乘风破浪LeetCode真题_010_Regular Expression Matching 一、前言     关于正则表达式我们使用得非常多但是如果让我们自己写一个却是有非常大的困难的我们可能想到状态机确定非确定状态机确实是一种解决方法不过需要消耗很大的时间去推理和计算对于正则表达式的缩小版我们往往可以通过递归递推动态规划等方法来解决。 二、Regular Expression Matching 2.1 问题理解 2.2 问题分析和解决     遇到这样的问题我们想到了递归对于.是很好处理和匹配的但是如果和*结合起来就变化无穷了正是因为*我们才要递归。     让我们看看官方的答案 class Solution {public boolean isMatch(String text, String pattern) {if (pattern.isEmpty()) return text.isEmpty();boolean first_match (!text.isEmpty() (pattern.charAt(0) text.charAt(0) || pattern.charAt(0) .));if (pattern.length() 2 pattern.charAt(1) *){return (isMatch(text, pattern.substring(2)) ||(first_match isMatch(text.substring(1), pattern)));} else {return first_match isMatch(text.substring(1), pattern.substring(1));}} }如果模式串和源串第一个字符能够正常匹配并且不为空模式串的第二个字符不为*那么我们可以继续递归匹配下面的东西 1 return first_match isMatch(text.substring(1), pattern.substring(1));     如果模式串的长度大于1并且第二个字符是*,那么我们就有可能匹配到源串的很多的字符也就相当于将源串已经匹配的去掉拿剩下的和整个模式串继续比较此时*发挥了作用或者比较源串与去掉了*的模式串因为*没有能够发挥作用。于是就得到了 1 if (pattern.length() 2 pattern.charAt(1) *){ 2 return (isMatch(text, pattern.substring(2)) || 3 (first_match isMatch(text.substring(1), pattern))); 4 }      除此之外我们还可以使用动态规划算法 class Solution {public boolean isMatch(String text, String pattern) {boolean[][] dp new boolean[text.length() 1][pattern.length() 1];dp[text.length()][pattern.length()] true;for (int i text.length(); i 0; i--){for (int j pattern.length() - 1; j 0; j--){boolean first_match (i text.length() (pattern.charAt(j) text.charAt(i) ||pattern.charAt(j) .));if (j 1 pattern.length() pattern.charAt(j1) *){dp[i][j] dp[i][j2] || first_match dp[i1][j];} else {dp[i][j] first_match dp[i1][j1];}}}return dp[0][0];} }首先我们定义dp[i][j]代表源串T[i:]和模式串P[j:]是匹配的其中i,j为源串和模式串的下标于是我们只要求得dp[0][0]的值就可以了。我们已知的条件是 dp[text.length()][pattern.length()] true;      于是我们从后往前倒求最终的dp[0][0]通过如下的判断看看是哪一种情况然后根据相应的情况采取不同的递推策略最终得到结果 1 boolean first_match (i text.length() 2 (pattern.charAt(j) text.charAt(i) || 3 pattern.charAt(j) .)); 4 if (j 1 pattern.length() pattern.charAt(j1) *){ 5 dp[i][j] dp[i][j2] || first_match dp[i1][j]; 6 } else { 7 dp[i][j] first_match dp[i1][j1]; 8 }        同样的我们算法也是使用了递归和动态规划     在动态规划方面我们使用match[i]来表示对于源串从i到最后T[i:]都是能够匹配的于是之用求match[0]即可。 import java.util.Arrays;public class Solution {/*** Implement regular expression matching with support for . and *.* . Matches any single character.* * Matches zero or more of the preceding element.** 题目大意* 实现一个正则表达式匹配算法.匹配任意一个字符*匹配0个或者多个前导字符*/public boolean isMatch(String s, String p) {boolean[] match new boolean[s.length() 1]; Arrays.fill(match, false);match[s.length()] true;//刚开始满足需要for (int i p.length() - 1; i 0; i--) {if (p.charAt(i) *) {for (int j s.length() - 1; j 0; j--) {          //原来就是false只有能够为真才为真。match[j] match[j] || match[j 1] (p.charAt(i - 1) . || s.charAt(j) p.charAt(i - 1));}i--;} else {for (int j 0; j s.length(); j) { //从前往后只有到了已经有true的时候才能生效。如果从后往前反而有问题。 match[j] match[j 1] (p.charAt(i) . || p.charAt(i) s.charAt(j));}//将最后的置为假本来就应该不真便于以后的判断match[s.length()] false;}}return match[0];}// 下面的代码用时比较长public boolean isMatch2(String s, String p) {// 输入都为nullif (s null p null) {return true;}// 有一个为nullelse if (s null || p null) {return false;}return isMatch(s, 0, p, 0);}/*** 正则表达式匹配** param s 匹配串* param sIdx 当前匹配的位置* param p 模式串* param pIdx 模式串的匹配位置* return 匹配结果*/public boolean isMatch(String s, int sIdx, String p, int pIdx) {// 同时到各自的末尾if (s.length() sIdx p.length() pIdx) {return true;}// 当匹配串没有到达末尾模式串已经到了末尾else if (s.length() ! sIdx p.length() pIdx) {return false;}// 其它情况else {// 如果当前匹配的下一个字符是*号if (pIdx p.length() - 1 p.charAt(pIdx 1) *) {// 匹配串未结束并且当前字符匹配字符相等或者是.号if (sIdx s.length() (s.charAt(sIdx) p.charAt(pIdx) || p.charAt(pIdx) .)) {return isMatch(s, sIdx 1, p, pIdx 2) // 匹配串向前移动一个字符只匹配一次|| isMatch(s, sIdx 1, p, pIdx) // 匹配串向前移动一个字符下一次匹配同样的模式串不动|| isMatch(s, sIdx, p, pIdx 2); // 忽略匹配的模式串} else {// 忽略*return isMatch(s, sIdx, p, pIdx 2);}}// 匹配一个字符if (sIdx s.length() (s.charAt(sIdx) p.charAt(pIdx) || p.charAt(pIdx) .)) {return isMatch(s, sIdx 1, p, pIdx 1);}}return false;}}如下表所示使用递归需要1163ms而使用动态规划需要20ms差别非常显著。 三、总结      对于一些比较困难的问题我们需要从不同的角度考虑解决问题的方法可以从递归递推动态规划等方面去考虑。转载于:https://www.cnblogs.com/zyrblog/p/10211390.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vps怎么搭建网站电子商务网站建设的首要问题

产品主要特点: -设备安装方便简洁,可通过3M胶直接将设备粘 贴到车前挡风玻璃上 -支持IE预览,手机,PAD实时预览, 支持电脑客 户端实时预览功能 -内置2路模拟高清, 每路均可达到200万像素。另 外可扩充2路1080P模拟…

有限公司网站入口佛山网站建设公司哪家比较好

目录 组件介绍 组件声明结构 组件接口 script dependency template style 状态注入 接口声明 组件介绍 Component 扩充自 Vue 的组件, 提供了 Vue 组件对等的输入参数能力。在代码书写时提供类 class 的装饰器 Decorator 风格。 import { Component, Watch } from al…

外贸网站模板 外贸网站制作龙岗微信网站制作

在 linux上安装 Redis 可以按照以下步骤进行(此处用Ubuntu 服务器进行讲解): 步骤 1: 更新系统包 打开终端并运行以下命令以确保你的系统是最新的: sudo apt update sudo apt upgrade步骤 2: 安装 Redis 使用 apt 包管理器安装 Redis: s…

dede网站安全设置合肥网络推广软件系统

目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类型转换 2 运算符 2.1 算术运算符 2.2 布尔运算符 …

深圳北站网站建设南京江北新区

ORACLE行转列、列转行实现方式及案例 行转列案例方式1.PIVOT方式2.MAX和DECODE方式3.CASE WHEN和GROUP BY 列转行案例方式1.UNPIVOT方式2.UNION ALL 行转列 案例 假设我们有一个名为sales的表,其中包含了产品销售数据。表中有三列:product(…

丑陋网站设计赏析事业单位网站建设费入什么科目

智慧公厕作为城市基础设施的重要组成部分,正逐渐成为改善城市品质和提升居民生活体验的一项关键措施。通过智能化管理、数字化使用和信息化运行,智慧公厕不仅可以为城市居民带来更舒适便利的使用体验,而且对于城市的高质量发展、宜居性和包容…

网站宣传推广策划长春建站模板源码

本文内容,全部选自自动化考研联盟的:《25届中国矿业大学868自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2007年复试真题 2023年初试真题 Part1:完整版真题 2007年复试真题 2…

网站后台模板论坛qq网站 直接登录

偷得几日清闲,又因一瞬之间对蹉跎时间的愧疚,由此而来到CSDN这个高手云集和新手求学的平台来也写上那么一篇博客。虽然自己的博客那么久不温不热,但坚持写作,巩固自己就好。今天要讲的是续接上一篇文章的补充与继续吧。上期文章&a…

网站基础三要素wordpress th7

要在WordPress中为不同的分类添加特定的字段,您可以使用自定义字段(Custom Fields)功能。以下是一种方法,通过编写自定义的函数来实现。 首先,您需要创建一个自定义的函数来添加特定的字段。您可以在WordPress主题的f…

宝安做网站的公司枣庄建设工程管理局网站

文章目录1. 题目2. 解题2.1 超时解2.1 改进计算方法1. 题目 假设你设计一个游戏,用一个 m 行 n 列的 2D 网格来存储你的游戏地图。 起始的时候,每个格子的地形都被默认标记为「水」。 我们可以通过使用 addLand 进行操作,将位置 (row, col)…

网站设计范文徐州 商城网站

文章目录1. 题目2. 解题1. 题目 你打算用一个水罐给花园里的 n 株植物浇水。 植物排成一行,从左到右进行标记,编号从 0 到 n - 1 。其中,第 i 株植物的位置是 x i 。x -1 处有一条河,你可以在那里重新灌满你的水罐。 每一株植…

做招聘网站高端企业网站建设费用

在电脑UC浏览器的新窗口页中如何打开书签UC浏览器是一个很不错的查询资料的软件,我们可以在UC浏览器的新标签页中打开书签,那么如何打开呢?小编就来为大家介绍一下吧。具体如下:1. 第一步,双击并打开UC浏览器软件。2. …

网站个人建设河北做网站公司那家好

要从PDF文件中提取数据并生成数据库,你可以使用Python中的一些库和工具来实现。 1、安装必要的库:确保已安装所需的库。除了之前提到的PyPDF2、pdfminer.six和pdftotext之外,你可能还需要其他的库来处理提取的数据和数据库操作。例如&#x…

wordpress做下载站中国商标网官方查询系统

theme: smartblue 点赞 关注 收藏 学会了 本文简介 最近字节在推Coze,你可以在这个平台制作知识库、制作工作流,生成一个具有特定领域知识的智能体。 那么,有没有可能在本地也部署一套这个东西呢?这样敏感数据就不会泄露了&…

河北邯郸信息港济南网站建设优化

文章目录 简介原理依赖基础示例功能解析和遍历文档输入从字符串中解析文档从 URL 加载文档从文件加载文档 数据提取使用 DOM 方法导航文档使用 CSS 选择器查找元素使用 XPath 选择器查找元素和节点从元素中提取属性、文本和 HTML 清理HTML 官网: https://jsoup.org…

ui设计师有前途吗搜索引擎优化时营销关键词

Python 交互式可视化库 所属分类:中间件编程 开发工具:Python 文件大小:12843KB 下载次数:1 上传日期:2018-12-06 18:40:56 上 传 者:孤独的老张 说明: 一个 Python 交互式可视化库,…

珠海网站关键词推广一分钟企业宣传片怎么拍

先后顺序: index.html > App.vue的export外的js代码 > main.js > App.vue的export里面的js代码 > Index.vue的export外的js代码 测试的页面代码块: 文件的加载先后顺序: Index.vue的mounted()中的输出没有执行。why&#…

服务好的企业网站怎么建设wordpress里的小工具

时间限制:0.5s 空间限制6M 题意&#xff1a; 给出n个&#xff08;1<n<10000&#xff09;1~m&#xff08;2<m<1000&#xff09;范围内的数&#xff0c;选择其中任意个数&#xff0c;使它们的 乘积 模m 最大&#xff0c;输出最大的分数&#xff0c;和选择的数的编号。…

做网站多久学会wordpress繁简体

基础篇&#xff1a; 第 1 部分&#xff1a;Dart 的基础语法 1.1 Dart 程序的结构 一个简单的 Dart 程序通常包含一个 main() 函数&#xff0c;这是程序的入口点。所有 Dart 程序都会从 main() 函数开始执行。 void main() {print(Hello, Dart!); } void 表示 main() 函数没…

哈尔滨做网站哪家好强手机网站推荐大全

linux常用命令(4) --- Vim编辑器与Shell命令脚本 如何使用vim编辑器来编写文档、配置主机名称、网卡参数以及yum仓库&#xff1b;通过vim编辑器将Linux命令放入合适的逻辑测试语句&#xff08;if、for、while、case&#xff09;后最终写出简单使用的shell脚本;可以通过at命令或…