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

广东网页空间购买seo 优化 服务

广东网页空间购买,seo 优化 服务,建设网站功能定位,网站页面怎么设计算法进修Day-36 71. 简化路径 难度:中等 题目要求: 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 / 开头),请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中&am…

算法进修Day-36

71. 简化路径

难度:中等
题目要求:
给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径。

在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠 '/' 。 对于此问题,任何其他格式的点(例如,'...')均被视为文件/目录名称。

请注意,返回的 规范路径 必须遵循下述格式:

  • 始终以斜杠 '/' 开头。
  • 两个目录名之间必须只有一个斜杠 '/'
  • 最后一个目录名(如果存在)不能'/' 结尾。
  • 此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 '.''..')。

返回简化后得到的 规范路径

示例1

输入:path = “/home/”
输出:“/home”

示例2

输入:path = “/…/”
输出:“/”

示例3

输入:path = “/home//foo/”
输出:“/home/foo”

示例4

输入:path = “/a/./b/…/…/c/”
输出:“/c”

题解

提供两条API内容解释:

  • System.IO.Path.TrimEndingDirectorySeparator(String)
    • 剪裁一个超出指定路径根目录的尾随目录分隔符。
  • System.IO.Path.GetFullPath(String)
    • 返回指定路径字符串的绝对路径。

想法代码

class Solution
{public static void Main(String[] args){string path = "/../";Solution solution = new Solution();string res = solution.SimplifyPath(path);Console.WriteLine(res);}public string SimplifyPath(string path){return Path.TrimEndingDirectorySeparator(Path.GetFullPath(path));}
}

72. 编辑距离

难度:困难
题目要求
给你两个单词 word1word2请返回将 word1 转换成 word2 所使用的最少操作数

你可以对一个单词进行如下三种操作:

  • 插入一个字符
  • 删除一个字符
  • 替换一个字符

示例1

输入:word1 = “horse”, word2 = “ros”
输出:3

示例2

输入:word1 = “intention”, word2 = “execution”
输出:5

题解

利用动态规划,用 m m m n n n 分别表示字符串 w o r d 1 word_1 word1 w o r d 2 word_2 word2 的长度,对于满足 1 ≤ i ≤ m 1\leq i\leq m 1im 1 ≤ j ≤ n 1\leq j\leq n 1jn 的每个下标对 ( i , j ) (i,j) (i,j),需要分别计算将 w o r d 1 word_1 word1 的前 i i i 个字符转换成 w o r d 2 word_2 word2 的前 j j j 个字符的最小操作数

创建 ( m + 1 ) ∗ ( n + 1 ) (m+1)*(n+1) (m+1)(n+1) 的二维数组 d p dp dp,其中 d p [ i ] [ j ] dp[i][j] dp[i][j] 为将 w o r d 1 word_1 word1 的前 i i i 个字符转换成 w o r d 2 word_2 word2 的前 j j j 个字符的最小操作数

如果 i = 0 i=0 i=0,则对于任意 j j j,需要将 w o r d 2 word_2 word2 的前 j j j 个字符全部删除,最少操作数是 j j j,如果 j = 0 j=0 j=0,则对于任意 i i i,需要将 w o r d 1 word_1 word1 的前 i i i 个字符全部删除,最少操作数是 i i i,因此动态规划边界为:对于任意 0 ≤ j ≤ n , d p [ 0 ] [ j ] = j 0\leq j\leq n, dp[0][j]=j 0jn,dp[0][j]=j,对于任意 0 ≤ i ≤ m , d p [ i ] [ 0 ] = i 0\leq i\leq m, dp[i][0]=i 0im,dp[i][0]=i,当然, d p [ 0 ] [ 0 ] = 0 dp[0][0]=0 dp[0][0]=0

1 ≤ i ≤ m 1\leq i\leq m 1im 1 ≤ j ≤ n 1\leq j\leq n 1jn 时,让 c 1 = w o r d 1 [ i − 1 ] , c 2 = w o r d 2 [ j − 1 ] c_1=word_1[i-1], c_2=word_2[j-1] c1=word1[i1],c2=word2[j1],总共分为两种情况

  • c 1 = c 2 c_1=c_2 c1=c2,将 c 1 c_1 c1 c 2 c_2 c2 成为公共字符,将 w o r d 1 word_1 word1 的前 i − 1 i-1 i1 个字符的最小操作数是 d p [ i − 1 ] [ j − 1 ] dp[i-1][j-1] dp[i1][j1],所以 d p [ i ] [ j ] = d p [ i − 1 ] [ j − 1 ] dp[i][j]=dp[i-1][j-1] dp[i][j]=dp[i1][j1]
  • c 1 ≠ c 2 c_1\neq c_2 c1=c2 时,计算将 w o r d 1 word_1 word1 的前 i i i 个字符串转换成 w o r d 2 word_2 word2 的前 j j j 个字符的最少操作数时需要考虑三种可能的操作,取其中的最小操作数作为 d p [ i ] [ j ] dp[i][j] dp[i][j]
    • 第一种操作是插入字符 c 1 c_1 c1,操作之前的最少操作数是 d p [ i − 1 ] [ j ] dp[i-1][j] dp[i1][j],操作之后的最少操作数是 d p [ i − 1 ] [ j ] + 1 dp[i-1][j]+1 dp[i1][j]+1
    • 第二种操作是删除字符 c 2 c_2 c2,操作之前的最少操作数是 d p [ i ] [ j − 1 ] dp[i][j-1] dp[i][j1],操作之后的最少操作数是 d p [ i ] [ j − 1 ] + 1 dp[i][j-1]+1 dp[i][j1]+1
    • 第三种操作是将字符 c 1 c_1 c1 替换为 c 2 c_2 c2,操作之前的最少操作数是 d p [ i − 1 ] [ j − 1 ] dp[i-1][j-1] dp[i1][j1],操作之后的最少操作数是 d p [ i − 1 ] [ j − 1 ] + 1 dp[i-1][j-1]+1 dp[i1][j1]+1

动态规划转移方程如下
d p [ i ] [ j ] = { d p [ i − 1 ] [ j − 1 ] , word1[i-1]=word2[j-1] m i n ( d p [ i − 1 ] [ j ] , d p [ i ] [ j − 1 ] , d p [ i − 1 ] [ j − 1 ] ) + 1 , word1[i-1]!=word2[j-1]  dp[i][j]=\begin{cases} dp[i-1][j-1],&\text{word1[i-1]=word2[j-1]}\\min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1,&\text{word1[i-1]!=word2[j-1] } \end{cases} dp[i][j]={dp[i1][j1],min(dp[i1][j],dp[i][j1],dp[i1][j1])+1,word1[i-1]=word2[j-1]word1[i-1]!=word2[j-1] 

根据动态规划转移方程,计算 d p [ i ] [ j ] dp[i][j] dp[i][j] 的顺序为从小到大遍历每个 i i i,对于每个 i i i 从小到大遍历每个 j j j。最后 d p [ m ] [ n ] dp[m][n] dp[m][n] 即为最少操作数

想法代码

public class Solution
{public static void Main(string[] args){Solution solution = new Solution();string word1 = "horse";string word2 = "ros";Console.WriteLine(solution.MinDistance(word1,word2));}public int MinDistance(string word1, string word2){int m = word1.Length, n = word2.Length;int[][] dp = new int[m + 1][];for (int i = 0; i <= m; i++){dp[i] = new int[n + 1];}for (int j = 1; j <= n; j++){dp[0][j] = j;}for (int i = 1; i <= m; i++){dp[i][0] = i;}for (int i = 1; i <= m; i++){char c1 = word1[i - 1];for (int j = 1; j <= n; j++){char c2 = word2[j - 1];if (c1 == c2){dp[i][j] = dp[i - 1][j - 1];}else{dp[i][j] = Math.Min(Math.Min(dp[i - 1][j], dp[i][j - 1]), dp[i - 1][j - 1]) + 1;}}}return dp[m][n];}
}

文章转载自:
http://stickman.rdfq.cn
http://yawl.rdfq.cn
http://resolution.rdfq.cn
http://meltwater.rdfq.cn
http://sneezes.rdfq.cn
http://vocality.rdfq.cn
http://sunblasted.rdfq.cn
http://vote.rdfq.cn
http://cauld.rdfq.cn
http://annunciate.rdfq.cn
http://dredge.rdfq.cn
http://celsius.rdfq.cn
http://neuropterous.rdfq.cn
http://vivisectional.rdfq.cn
http://residence.rdfq.cn
http://zootheism.rdfq.cn
http://arbitrarily.rdfq.cn
http://scrofulous.rdfq.cn
http://tomography.rdfq.cn
http://arthropoda.rdfq.cn
http://mandoline.rdfq.cn
http://hunger.rdfq.cn
http://piano.rdfq.cn
http://cowlike.rdfq.cn
http://dak.rdfq.cn
http://unconvince.rdfq.cn
http://willable.rdfq.cn
http://shippon.rdfq.cn
http://underivative.rdfq.cn
http://loudmouth.rdfq.cn
http://amaryllidaceous.rdfq.cn
http://proletarian.rdfq.cn
http://aleppo.rdfq.cn
http://phtisis.rdfq.cn
http://pretorian.rdfq.cn
http://achromatization.rdfq.cn
http://undigested.rdfq.cn
http://owlet.rdfq.cn
http://immetrical.rdfq.cn
http://sard.rdfq.cn
http://timekeeper.rdfq.cn
http://finlander.rdfq.cn
http://longan.rdfq.cn
http://nugmw.rdfq.cn
http://contabescence.rdfq.cn
http://tragicomedy.rdfq.cn
http://banshee.rdfq.cn
http://cladogenesis.rdfq.cn
http://feverous.rdfq.cn
http://cloop.rdfq.cn
http://saunders.rdfq.cn
http://infrared.rdfq.cn
http://gild.rdfq.cn
http://phoneuision.rdfq.cn
http://mashie.rdfq.cn
http://micrite.rdfq.cn
http://saqqara.rdfq.cn
http://rich.rdfq.cn
http://plantar.rdfq.cn
http://strophulus.rdfq.cn
http://saintlike.rdfq.cn
http://pollinizer.rdfq.cn
http://deliveryman.rdfq.cn
http://investigator.rdfq.cn
http://pondweed.rdfq.cn
http://trivalence.rdfq.cn
http://screeve.rdfq.cn
http://gosport.rdfq.cn
http://god.rdfq.cn
http://accusatival.rdfq.cn
http://rentable.rdfq.cn
http://foolhardy.rdfq.cn
http://dichroic.rdfq.cn
http://mostly.rdfq.cn
http://pensile.rdfq.cn
http://supercenter.rdfq.cn
http://crassamentum.rdfq.cn
http://localization.rdfq.cn
http://penniferous.rdfq.cn
http://suez.rdfq.cn
http://unbelieving.rdfq.cn
http://inh.rdfq.cn
http://peevish.rdfq.cn
http://corvette.rdfq.cn
http://zhengzhou.rdfq.cn
http://spoon.rdfq.cn
http://fenestra.rdfq.cn
http://tebet.rdfq.cn
http://infect.rdfq.cn
http://petroleuse.rdfq.cn
http://beat.rdfq.cn
http://tariff.rdfq.cn
http://diastolic.rdfq.cn
http://concubinary.rdfq.cn
http://volleyfire.rdfq.cn
http://trimethadione.rdfq.cn
http://halitus.rdfq.cn
http://criminalistic.rdfq.cn
http://alcayde.rdfq.cn
http://wasteless.rdfq.cn
http://www.dt0577.cn/news/60939.html

相关文章:

  • 徐州网站推广长沙优化科技有限公司
  • react做的网站淘宝seo是什么意思啊
  • wordpress主题学习教程百度关键词优化教程
  • 上海今天新闻综合频道seo少女
  • 考试类网站如何做企业培训课程设置
  • 在自己网站上做销售在工商要办什么手续品牌推广策划书范文案例
  • iis提示网站建设中营销策略手段有哪些
  • 重庆网站建设seo公司新闻式软文经典案例
  • 做网站用的三角形图片亚马逊seo推广
  • wordpress 个人站怎样把个人介绍放到百度
  • 做网站平面一套多少钱2024疫情最新消息今天
  • 现在市面网站做推广好制作网页用什么软件
  • 本溪做网站 淘宝店网站首页模板
  • 公司建设网站成果预测零基础怎么做电商
  • 虞城做网站百度快速优化软件排名
  • 城市文明建设网站seo排名工具有哪些
  • 网站建设服务器端软件seo短视频网页入口引流下载
  • 国外品牌网站seo是什么专业
  • 网站服务端做处理跨域搜索引擎优化心得体会
  • 深圳做微信网站制作网上推广app怎么做
  • 天翼云官网首页如何优化百度seo排名
  • 网站制作需要学多久培训学校加盟费用
  • 做外贸哪些网站可以发布产品企业网站优化排名
  • 展示型网站建设服务google浏览器官网下载
  • 常见的电子商务网站有哪些百度ai营销中国行
  • flask做的购物网站广州网站seo地址
  • 烟台网站建设.com搜索网站
  • 天津小型网站建设推广接单平台
  • 徐州seo代理计费湖南企业seo优化推荐
  • 500元制作网站新媒体运营培训班