Thursday, December 7, 2023
HomeSoftware EngineeringSorted? sure? no? how? ..in Python

# Sorted? sure? no? how? ..in Python

## The problem#

Full the tactic which accepts an array of integers, and returns one of many following:

• `"sure, ascending"` – if the numbers within the array are sorted in an ascending order
• `"sure, descending"` – if the numbers within the array are sorted in a descending order
• `"no"` – in any other case

You’ll be able to assume the array will at all times be legitimate, and there’ll at all times be one appropriate reply.

Full the tactic which accepts an array of integers, and returns one of many following:

• `"sure, ascending"` – if the numbers within the array are sorted in an ascending order
• `"sure, descending"` – if the numbers within the array are sorted in a descending order
• `"no"` – in any other case

You’ll be able to assume the array will at all times be legitimate, and there’ll at all times be one appropriate reply.

## The answer in Python code#

Choice 1:

``````def is_sorted_and_how(arr):
asc = sorted(arr)
desc = sorted(arr, reverse=True)
if arr==asc:
return "sure, ascending"
elif arr==desc:
return "sure, descending"
else:
return "no"
``````

Choice 2:

``````def is_descending(arr):
for i in vary(len(arr) - 1):
if arr[i + 1] > arr[i]: return False
return True

def is_ascending(arr):
for i in vary(len(arr) - 1):
if arr[i + 1] < arr[i]: return False
return True

def is_sorted_and_how(arr):
if is_ascending(arr): return 'sure, ascending'
if is_descending(arr): return 'sure, descending'
return 'no'
``````

Choice 3:

``````is_sorted_and_how = lambda a: ['no','yes, ascending','yes, descending'][(sorted(a)==a)+(sorted(a)[::-1]==a)*2]
``````

## Take a look at instances to validate our resolution#

``````check.it("[1, 2]")
check.assert_equals(is_sorted_and_how([1, 2]), 'sure, ascending')

check.it("[15, 7, 3, -8]")
check.assert_equals(is_sorted_and_how([15, 7, 3, -8]), 'sure, descending')

check.it("[4, 2, 30]")
check.assert_equals(is_sorted_and_how([4, 2, 30]), 'no')
``````
RELATED ARTICLES