JP Ventura
BAN USER- 1of 1 vote
AnswersGiven a decimal number, write a function that returns its negabinary (i.e. negative 2-base) representation as a string.
- JP Ventura in United States#!/usr/bin/env python3 assert solution(-15) == '110001' assert solution(2) == '110' assert solution(13) == '11101'
| Report Duplicate | Flag | PURGE
Facebook Software Engineer / Developer Algorithm
No, the is the simple part. The hard part of the question is sum two numbers in (-2)-base :-)
- JP Ventura January 09, 2016#!/usr/bin/env python3
class Frequency(dict):
def __getitem__(self, key):
try:
return dict.__getitem__(self, key)
except KeyError:
return 0
def solution(array):
frequency = Frequency()
for element in array:
frequency[element] += 1
return frequency
frequency = solution([1, 1, 7, 2, 1, 2, 9])
assert frequency[0] == 0
assert frequency[1] == 3
assert frequency[2] == 2
assert frequency[7] == 1
assert frequency[9] == 1
If the tree is always complete, it could be represented as an array.
Given a level n, the can obtain the index of the first element of that level, thus the only thing required is sum the elements array[n:n+1]
#!/usr/bin/env python3
from math import log2
def first_element_index(level):
return 2**level - 1
def elements_in_level(tree, level):
i = first_element_index(level)
j = first_element_index(level + 1)
return tree[i:j]
def solution(tree):
number_of_levels = int(log2(len(tree)))
sum_in_levels = []
for level in range(number_of_levels + 1):
sum_in_levels.append(sum(elements_in_level(tree, level)))
return sum_in_levels
assert solution([1, 2, 3, 4, 5, 1, 2]) == [1, 5, 12]
#!/usr/bin/env python3
from functools import reduce
def bitwise_and(a, b):
return a & b
def solution(number, sequence):
return reduce(bitwise_and, sequence) == number
assert solution(4, [4, 4, 4, 4])
assert not solution(4, [1, 4, 4, 7])
assert not solution(4, [1, 2, 3, 4])
assert not solution(4, [-10, 0, 4, 10])
#!/usr/bin/env python3
def solution(num, a, b, c, d):
return a + b + c + d == 4*num
# Your solution fail on this input
assert not solution(4, 1, 4, 4, 7)
- JP Ventura January 10, 2016