nunziomeli5
BAN USERMy recursive solution :
def line(n,l):
arr = [" "] * l
tmp = "".join(arr)
for i in xrange(n):
tmp = tmp + "*"
return tmp
def recprint(n,m,b,l=0):
if n > 0:
recprint(n-2,0,b,l+1)
print line(n,l)
if m == 0: return
if m != 0:
if n==b: l = (n-1)/2
if m >= b: return
recprint(0,m+2,b,l-1)
print line(m,l)
recprint(11,1,11)
My python solution.
# Brute force solution less than O(n^2))
# O(n*m)
# where m
# m =~ 10^(len(n)-1) - 10^(len(n)-2)
import math
def check(n1,n2):
n1 = list(str(n1))
n2 = list(str(n2))
if len(n1)-1 != len(n2):
return False
for char in n2:
if char not in n1:
return False
else:
n1.remove(char)
return True
n = 124
val = []
r = int(math.pow(10,len(str(n))-1))
a = int(math.pow(10,len(str(n))-2))
for n1 in xrange(n):
for n2 in xrange(a,r):
if n1+n2 == n:
if check(n1,n2):
val.append((n1,n2))
print val
My python solution
import math
a = [(1,2),(8,9),(10,11),(3,2),(0,1),(4,4)]
b = []
k = 2
for i,elem in enumerate(a):
x = elem[0]
y = elem[1]
b.append((i,math.sqrt(math.pow(x,2)+math.pow(y,2))))
b.sort(key=lambda x : x[1])
print b
for i in range(k):
print a[b[i][0]]
My python solution
arr = [1,0,0,0,3,0,4,0]
k = 0
for i in range(len(arr)):
if arr[i] != 0:
arr[k] = arr[i]
k += 1
for i in range(k,len(arr)):
arr[i] = 0
print arr
print len(arr)-k
My running python solution:
#You have a binary tree which consists of 0 or 1 in the way, that each node value is a LOGICAL AND between its children:
# 0
# / \
# 0 1
# / \ / \
#0 1 1 1
#You need to write a code, which will invert given LEAF and put tree in a correct state.
class Node:
def __init__(self,value = "", left = None, right = None):
self._value = value
self._left = left
self._right = right
def updateTree(node):
if node._left is not None and node._right is not None:
updateTree(node._left)
updateTree(node._right)
node._value = node._left._value and node._right._value
def invert(root, leaf):
if leaf._left != None or leaf._right != None:
return
leaf._value = not leaf._value
updateTree(root)
def initTree(number):
if number == 0:
return None
return Node(False,initTree(number -1),initTree(number -1))
def printTree(node):
if node == None: return
printTree(node._left)
printTree(node._right)
print node._value
def main():
root = initTree(3)
root._left._right._value = True
root._right._left._value = True
root._right._right._value = True
updateTree(root)
printTree(root)
print "after invert the first child"
invert(root,root._left._left)
printTree(root)
if __name__ == "__main__":
main()
import random
arr = [ 1, -2, 0, 6, 2, -4, 6, 6 ]
max = 0
indexes = 0
# Shaffle the array O(n)
for index in xrange(len(arr)):
rnd = random.randint(0,len(arr)-1)
tmp = arr[0]
arr[0] = arr[rnd]
arr[rnd] = tmp
print arr
# Find the max O(n)
for elem in arr:
if elem > max:
max = elem
# Find the indexes O(n)
for index,elem in enumerate(arr):
if elem == max:
indexes = index
# Execution: O(n) + O(n) + O(n) = O(n)
# Memory: O(1)
print indexes
- nunziomeli5 June 18, 2017