首页 > 其他分享 >Study Plan For Algorithms - Part36

Study Plan For Algorithms - Part36

时间:2024-09-19 23:13:13浏览次数:12  
标签:Study range Part36 part word1 word2 Algorithms stack dp

1. 简化路径
给定一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请将其转化为 更加简洁的规范路径。

在 Unix 风格的文件系统中规则如下:

  • 一个点 '.' 表示当前目录本身。
  • 此外,两个点 '..' 表示将目录切换到上一级(指向父目录)。
  • 任意多个连续的斜杠(即,'//' 或 '///')都被视为单个斜杠 '/'。
  • 任何其他格式的点(例如,'...' 或 '....')均被视为有效的文件/目录名称。

返回的 简化路径 必须遵循下述格式:

  • 始终以斜杠 '/' 开头。
  • 两个目录名之间必须只有一个斜杠 '/' 。
  • 最后一个目录名(如果存在)不能 以 '/' 结尾。
  • 此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 '.' 或 '..')。
class Solution:
    def simplifyPath(self, path: str) -> str:
        stack = []
        parts = path.split('/')

        for part in parts:
            if part == '..':
                if stack:
                    stack.pop()
            elif part and part!= '.':
                stack.append(part)

        return '/' + '/'.join(stack)

2. 编辑距离
给定两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。

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

  • 插入一个字符
  • 删除一个字符
  • 替换一个字符
class Solution:
    def minDistance(self, word1: str, word2: str) -> int:
        m, n = len(word1), len(word2)

        dp = [[0] * (n + 1) for _ in range(m + 1)]

        for i in range(m + 1):
            dp[i][0] = i
        for j in range(n + 1):
            dp[0][j] = j

        for i in range(1, m + 1):
            for j in range(1, n + 1):
                if word1[i - 1] == word2[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1]
                else:
                    dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1)

        return dp[m][n]

标签:Study,range,Part36,part,word1,word2,Algorithms,stack,dp
From: https://www.cnblogs.com/stephenxiong001/p/18421568

相关文章

  • Study Plan For Algorithms - Part34
    1.二进制求和给定两个二进制字符串a和b,以二进制字符串的形式返回它们的和。classSolution:defaddBinary(self,a:str,b:str)->str:i=len(a)-1j=len(b)-1carry=0result=[]whilei>=0orj>=0or......
  • Study Plan For Algorithms - Part33
    1.和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。方法一:deftwoSum(nums,target):left=0right=len(nums)-1whileTrue:res=nums[left]+nums[right]ifres==target:......
  • phpStudy 小皮 Windows面板 存在RCE漏洞
    靶场资料后台自行领取【靶场】Phpstudy小皮面板存在RCE漏洞,通过分析和复现方式发现其实本质上是一个存储型XSS漏洞导致的RCE。通过系统登录用户名输入处的XSS配合系统后台自动添加计划任务实现RCE。这是登录成功的界面登录成功了就来和大佬们喝喝茶吧~首先在用户名登录的......
  • Study Plan For Algorithms - Part32
    1.不同路径II一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物......
  • Study Plan For Algorithms - Part30
    1.螺旋矩阵II给定一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。classSolution:defgenerateMatrix(self,n:int)->List[List[int]]:matrix=[[0]*nfor_inrange(n)]num=1......
  • Study Plan For Algorithms - Part31
    1.旋转链表给定一个链表的头节点head,旋转链表,将链表每个节点向右移动k个位置。classListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextclassSolution:defrotateRight(self,head:Optional[ListNode],k:int)->O......
  • phpStudy下载和使用方法
    phpStudy是一个PHP调试环境的程序集成包,它集成了Apache、PHP、MySQL、phpMyAdmin等多种开发工具,为PHP开发者提供了一个快速搭建和调试PHP开发环境的解决方案。phpStudy是一款集成开发环境(IDE)软件,主要用于在Windows系统上快速搭建和调试PHP、MySQL、Apache等网页开发环境。以下是......
  • kuangStudy
    JVM探究对JVM的理解?Java8虚拟机和之前的变化什么是OOM,什么是栈溢出,怎么分析JVM的常用调优参数内存快照如何抓取,怎么分析Dump文件JVM中的类加载ProcessOn思维导图工具1.JVM的位置操作系统之上,与其他应用程序平行的地位2.JVM的体系结构详细图解网上找classfile......
  • Study Plan For Algorithms - Part28
    1.跳跃游戏题目链接:https://leetcode.cn/problems/jump-game/给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。classSolution:defca......
  • Study Plan For Algorithms - Part29
    1.在排序数组中查找数字统计一个数字在排序数组中出现的次数。方法一:defsearch(nums,target):returnhelper(nums,target)-helper(nums,target-1)defhelper(nums,target):i=0j=len(nums)-1whilei<=j:m=(i+j)//......