Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Add reversed subsequences solution in Clear category for Reverse Every Ascending by Dm_Ch
def reverse_ascending(items):
if len(items) <= 1:
return items # may return sourse, modifying is not required
result = [] # new reciever list for reverse_ascending (source modifying is forbidden)
m = 0 # slice begin point
for x in range(1, len(items)): # find slice end point ==
if items[x] <= items[x-1]: # end of ascending subsequence
result += (items[m:x])[::-1]
m = x # end in this iteration becomes begin for the next iteration
result += (items[m:len(items)])[::-1] # add last slice if left
return result
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!")
March 31, 2021
Comments: