leetcode:Simplify Path+Edit…

来源:互联网 发布:阿里云备案网站名称 编辑:程序博客网 时间:2024/06/11 09:53
Simplify Path:
题目本身不难,模拟linux的文件路径,如../表示上一级目录,用栈的思想即可。不过我的方法用了一堆if,最关键的是,我是逐个读取字符,看了大神的代码,直接getline(ss,tmp,'/'),tmp就是两个/之间的字符串。

Edit Distance:
用替换、删除、插入三种方法,把字符串s1转为s2。
典型的动态规划,关键还是要想到状态转移方程:dp[i][j]表示把s1的前i位转为s2的前j位需要多少步骤。
dp[i][j]=min(dp[i-1][j]+1,min(dp[i][j-1]+1,dp[i-1][j-1]+(word1[i]==word2[j]?0:1)));

Set Matrix Zeroes:
给出一个矩阵,每当一个元素为0,就把它所在的行列都设为0。解题不难,关键在于不用额外空间。
看了题解想到办法,每当元素为0,就把它所在行列的[i][0]和[0][j]都设为0作为标记,同时记录第0行和列是否为0。不过其实还可以简化,直接只记录第0列,第0行就看[0][0]是否为0即可
原创粉丝点击