Lecture "Brute-force argorithms", exercise 5
essepuntato opened this issue · 11 comments
Write in Python the function def my_reversed(input_list)
, which behaves like the built-in function reversed()
introduced in Section "Insertion sort" and returns a proper list, and accompany the function with the related test case. It is not possible to use the built-in function reversed()
in the implementation.
def test_my_reversed(input_reversed_list, expected):
return input_reversed_list == expected
def my_reversed(input_list):
output_list = []
for _ in range(len(input_list)):
output_list.append(input_list.pop())
return output_list
# Expect True
print(test_my_reversed(my_reversed([0,1,2,3]), [3, 2, 1, 0]))
print(test_my_reversed(my_reversed([0,1,2,3]), list(reversed([0, 1, 2, 3]))))
# Console output: True
def my_reversed(input_list):
result= list()
for i in range(len(input_list)):
result.insert(i-1, input_list[-i])
return result
#Test case
def test_reversed(input_list, expected):
if my_reversed(input_list)== expected:
return True
else:
return False
# Three test runs
print(test_reversed([0, 1, 2, 3], [3, 2, 1, 0]))
print(test_reversed(["Alice", "Bob", "Carl", "Danielle"], ["Danielle", "Carl", "Bob", "Alice"]))
print(test_reversed([0, 1, 2, 3], [1, 2, 3, 0]))
Second try:
def my_reversed(input_list):
result= list()
for item in input_list:
result.insert(0, item)
return result
#Test case
def test_reversed(input_list, expected):
if my_reversed(input_list)== expected:
return True
else:
return False
# Three test runs
print(test_reversed([0, 1, 2, 3], [3, 2, 1, 0]))
print(test_reversed(["Alice", "Bob", "Carl", "Danielle"], ["Danielle", "Carl", "Bob", "Alice"]))
print(test_reversed([0, 1, 2, 3], [1, 2, 3, 0]))
Third try:
def my_reversed(input_list):
result=list()
for item in input_list:
result= [item]+ result
return result
def test_my_reversed (input_list, expected):
result = my_reversed(input_list)
if result == expected:
return True
else:
return False
def my_reversed(input_list):
output_list = []
i = len(input_list)-1
while i >= 0:
output_list.append(input_list[i])
i -= 1
return output_list
#Test case
print(test_my_reversed([0, 1, 2, 3], [3, 2, 1, 0]))
#Console output
True
def test_my_reverse(input_list, expected):
result = my_reverse(input_list)
if result == expected:
return True
else:
return False
def my_reverse(input_list):
reversed_list = input_list[::-1]
return reversed_list
print(test_my_reverse([0, 1, 2, 3], [3, 2, 1, 0]))
def test_my_reversed(input_list, expected):
result = my_reversed(input_list)
if result == expected:
return True
else:
return False
def my_reversed(input_list):
output_list = list()
last_index = len(input_list)-1
for item in input_list:
output_list.append(input_list[last_index])
last_index -= 1
return output_list
print(test_my_reversed([1, 2, 3, 4], [4, 3, 2, 1]))
print(test_my_reversed([], []))
def test_my_reversed(input_list, expected):
result = my_reversed(input_list)
if expected == result:
return True
else:
return False
def my_reversed(input_list):
reverse_list = []
pen = len(input_list) - 1
for item in input_list:
reverse_list.append(input_list[pen])
pen -= 1
return reverse_list
# Test runs that return True
print(test_my_reversed([1, 2, 3, 4, 5], [5, 4, 3, 2, 1]))
print(test_my_reversed([0, 1, 2, 3, 4, 5], [5, 4, 3, 2, 1, 0]))
print(test_my_reversed(["Sherlock", "John", "Microft", "Moriarty"], ["Moriarty", "Microft", "John", "Sherlock"]))
# Another idea come after the night!
def test_my_reversed(input_list, expected):
result = my_reversed(input_list)
if expected == result:
return True
else:
return False
def my_reversed(input_list):
reversed_list=[]
for item in input_list:
reversed_list.insert(0, item)
return reversed_list
print(test_my_reversed(["a", "b", "c"], ["c", "b", "a"]))
print(test_my_reversed([1, 2, 3], [3, 2, 1]))
def my_reversed(input_list):
output_list = []
for i in range(len(input_list)):
output_list.append(input_list[len(input_list)-i-1])
return output_list
def test_my_reversed(input_list, expected):
if my_reversed(input_list) == expected:
return True
else:
return False
print(test_my_reversed(['a','b','c','d'],['d', 'c', 'b', 'a']))
print(test_my_reversed(['1','2','3','4'],['4', '3', '2', '1']))
Or:
def my_reversed(input_list):
output_list = []
for item in input_list:
output_list.insert(0, item)
return output_list
def test_my_reversed(input_list, expected):
if my_reversed(input_list) == expected:
return True
else:
return False
print(test_my_reversed(['a','b','c','d'],['d', 'c', 'b', 'a']))
print(test_my_reversed(['1','2','3','4'],['4', '3', '2', '1']))
def test_case_my_reverse(input_list, expected):
# Test case Algorithm
result=my_reverse(input_list)
if result==expected:
return True
else:
return False
# Code of algorithm
def my_reverse (input_list):
output_list=[]
for item in range (len(input_list)):
output_list.insert(0, input_list [item])
return output_list
#Three test runs
print (test_case_my_reverse(["ab", "bc","de", "ef"], ['ef', 'de', 'bc', 'ab']))
print (test_case_my_reverse ([1,2,3,4], [4,3,2,1]))
print (test_case_my_reverse (["Moon", "Earth", "Venus", "Mars"], ['Mars', 'Venus', 'Earth', 'Moon']))
def test_my_reversed(input_list, expected):
result = my_reversed(input_list)
if expected == result:
return True
else:
return False
def my_reversed(input_list):
my_iterator = []
i = len(input_list)
for item in input_list:
current_item = input_list[i-1]
my_iterator.append(current_item)
i -= 1
return my_iterator
print(test_my_reversed(["Harry", "Ron", "Hermione", "Hagrid"], ["Hagrid", "Hermione", "Ron", "Harry"]))
print(test_my_reversed([1, 2, "tre", 4], [4, "tre", 2, 1]))
print(test_my_reversed([], []))
def test_my_reversed(input, expected):
result = my_reversed(input)
if result == expected:
return True
else:
return False
def my_reversed(input):
result = list()
item = len(input)
for i in range(item):
item = item - 1
result.append(input[item])
return result
print(test_my_reversed([0,1,2,3,4,5], [5,4,3,2,1,0]))
print(test_my_reversed(["Aragorn", "Frodo", "Samwise"], ["Samwise", "Frodo", "Aragorn"]))
print(test_my_reversed([0,1,1,2,2,3], [3,2,2,1,1,0]))
print(test_my_reversed(["Uruk-hai", "Saruman", "Sauron", "Uruk-hai"], ["Uruk-hai", "Sauron", "Saruman","Uruk-hai"]))
# Test case for the function
def test_my_reversed(input_list, expected):
result = my_reversed(input_list)
if expected == result:
return True
else:
return False
# Code of the function
def my_reversed(input_list):
l = list()
for item in input_list:
l.insert(0, item)
return l
# Tests
print(test_my_reversed([], []))
print(test_my_reversed([1, 2, 5, 6, 4, 7, 2], [2, 7, 4, 6, 5, 2, 1]))