Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Reverse Every Ascending by Alex_4444D
def reverse_ascending(items):
#find every maximal strictly ascending sublists and reverse each
sublists = []
sublist = []
for i in range(len(items)):
sublist.append(items[i])
if i != len(items)-1:
if items[i] >= items[i+1]:
sublists.append(sublist)
sublist = []
else:
sublists.append(sublist)
sublist = []
if not sublists : return items[::-1]
sublists = [i[::-1] for i in sublists]
return [sublists[i][j] for i in range(len(sublists)) for j in range(len(sublists[i]))]
if __name__ == '__main__':
print("Example:")
print(reverse_ascending([1, 2, 3, 4, 5]))
# These "asserts" are used for self-checking and not for an auto-testing
assert list(reverse_ascending([1, 2, 3, 4, 5])) == [5, 4, 3, 2, 1]
assert list(reverse_ascending([5, 7, 10, 4, 2, 7, 8, 1, 3])) == [10, 7, 5, 4, 8, 7, 2, 3, 1]
assert list(reverse_ascending([5, 4, 3, 2, 1])) == [5, 4, 3, 2, 1]
assert list(reverse_ascending([])) == []
assert list(reverse_ascending([1])) == [1]
assert list(reverse_ascending([1, 1])) == [1, 1]
assert list(reverse_ascending([1, 1, 2])) == [1, 2, 1]
print("Coding complete? Click 'Check' to earn cool rewards!")
Nov. 5, 2021