关于Valid Anagram这一题,补充一个方法,性能109ms:
from collections import Counter
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
s_counter = Counter(s)
t_counter = Counter(t)
return s_counter == t_counter
题目:
Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1
/ \
2 3
\
5
All root-to-leaf paths are:
["1->2->5", "1->3"]
题意:
找出二叉树的所有路径。
方法一:性能55ms
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def binaryTreePaths(self, root):
"""
:type root: TreeNode
:rtype: List[str]
"""
self.ans = []
if root == None:
return self.ans
def dfs(root, path):
if root and root.left is None and root.right is None:
self.ans.append(path)
elif root.left:
root.left = dfs(root.left, path + '->' + str(root.left.val))
elif root.right:
root.right = dfs(root.right, path + '->' + str(root.right.val))
dfs(root, root.val)
return self.ans