silvio.s
BAN USERThe complexity is O(n), where n is the lenght of s.
def max_substr(s, t1, t2, t3):
res = ''
for i in s:
res += i
if (not(t1 in res or t2 in res or t3 in res or
res in t1 or res in t2 or res in t3)):
res = res[1::] #remove the first element
if (t1 in res and t2 in res and t3 in res):
return res
return res
import numpy as np
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.data = val
def insert(root, node):
if root is None:
root = node
else:
if (root.data > node.data):
if(root.left is None):
root.left = node
else:
insert(root.left, node)
else:
if(root.right is None):
root.right = node
else:
insert(root.right, node)
def postorder(root, nodes=[]):
if not root: return []
postorder(root.left)
nodes.append(root.data)
postorder(root.right)
return nodes
def solution(root):
nodes = postorder(root)
minim = np.inf
for i in range(len(nodes)-1):
tmp = nodes[i+1] - nodes[i]
if (tmp < minim):
minim = tmp
return minim
graph = {
'r1': ('k1', {'r2': '', 'r3': ''}),
'r2': ('', {'r1': '', 'r3': 'k1', 'r4': 'k2'}),
'r3': ('k2', {'r1': '', 'r2': 'k1'}),
'r4': ('t', {'r2': 'k2'}),
}
def find_treasure(start, graph, objects=[], visited=None, res=False):
if visited is None:
visited = []
visited.append(start)
tmp2 = graph[start][0]
if (tmp2 == 't'): res = True
elif(tmp2 != ''): objects.append(graph[start][0])
for next in graph[start][1].keys():
if next not in visited:
tmp1 = graph[start][1][next]
if (tmp1 in objects or tmp1 == ''):
res = find_treasure(next, graph, objects, visited, res)
return res
def funct(inp):
if (inp == []):
return "0-99"
out = ""
for i in range(len(inp)):
if (i == 0 and inp[i] != 0):
out += "0-" + str(inp[0]-1) + ","
if (i == (len(inp)-1) and inp[i] != 99):
out += str(inp[len(inp)-1] + 1) + "-99"
elif (inp[i] + 1 != inp[i+1]):
if (inp[i] + 1 == inp[i+1] -1):
out += str(inp[i]+1) + ","
else:
out += str(inp[i]+1) + "-" + str(inp[i+1]-1) + ","
return out
Python3
- silvio.s December 15, 2018