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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments