71. 简化路径
题一开始没看懂
看了解析
有一个写的非常棒
class Solution:
def simplifyPath(self, path: str) -> str:
r = []
path = path.split('/')
for s in path:
r = {'':r, '.':r, '..':r[:-1]}.get(s, r + [s])
# radiansdict.get(key, default=None)
# 返回指定键的值,如果值不在字典中返回default值
return '/' + '/'.join(r)
# 作者:QQqun902025048
# 链接:https://leetcode-cn.com/problems/simplify-path/solution/python-4-line-by-qqqun902025048/
# 来源:力扣(LeetCode)
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
看完后几点感悟:
1.字典中的值可以是一种操作,虽然表现形式是字符串的切片,而不一定是不可变类型,只有键必须是不可变类型
2.字典的get可以看做是if x in dict: a,else: b
radiansdict.get(key, default=None):
返回指定键的值,如果值不在字典中返回default值
3.字符串的join(seq):
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
以下实例展示了join()的使用方法:
实例
#!/usr/bin/python3
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))
以上实例输出结果如下:
r-u-n-o-o-b
runoob
4.字符串的split(str="", num=string.count(str)),以path.split('/')为例,如果path= 'a/,/,/',注意最右边是个'/',正是我们要分割的对象,这个'/'的左边是',',而右边其实是'',也就是空字符串,所以分割完之后的结果是['a', ',' , ',' ,''],列表最后面正是那个空字符串
79. 单词搜索
矩阵可以转化成图,图可以用深度优先搜索和广度优先搜索两种办法进行遍历