Informatică, întrebare adresată de alexalghisi, 8 ani în urmă

You are given an array of integers. Your task is to sort odd numbers within the array in ascending order, and even numbers in descending order.


Note that zero is an even number. If you have an empty array, you need to return it.

Pentru cei care stiu engleza :)
Solutii acceptate: js, pythonsi Ruby


boiustef: şi acei care nu ştiu eng. au înţeles sarcina... :))) dar nu js sau Ruby ... :(((
CinevaFaraNume: Cum trebuie sa arate vectorul / vectorii rezultati?

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
0

#!/usr/bin/env python

def specialSort(v):

   odd = []

   even = []

   for val in v:

       if val % 2 == 0:

           even = even + [val]

       else:

           odd = odd + [val]

   bool__ = True

   while bool__ == True:

       bool__ = False

       for i in range(0, len(odd) - 1):

           if(odd[i] > odd[i+1]):

               temp = odd[i]

               odd[i] = odd[i+1]

               odd[i+1] = temp

               bool__ = True

               

   bool__ = True

   while bool__ == True:

       bool__ = False

       for i in range(0, len(even) - 1):

           if(even[i] < even[i+1]):

               temp = even[i]

               even[i] = even[i+1]

               even[i+1] = temp

               bool__ = True

   # varianta 1: elementele impare in ordine crescatoare urmate de elementele pare in ordine descrescatoare

   #return odd + even # Asa trebuie sa arate vectorul ??

   # varianta 2: punem elementele inapoi in lista initiala, in ordinea rezultata dupa sortari

   k1 = 0

   k2 = 0

   for i in range(0, len(v)-1):

       if v[i] % 2 == 0:

           v[i] = even[k1]

           k1 = k1 + 1

       else:

           v[i] = odd[k2]

           k2 = k2 + 1

   return v

Am folosit 2 variante, foloseste-o pe cea de care ai nevoie si pune-o pe cealalta in comentarii.

(Nu pot pune fisierul ca atasament asa ca il poti gasi aici: https://pastebin.com/ZVafD9Dm)


alexalghisi: Trece pe exemple dar nu trece pe toate testele :|
alexalghisi: [8, 1, 6, 3, 4, 5, 2, 7, 0, 5] should equal [8, 1, 6, 3, 4, 5, 2, 7, 0, 9]
alexalghisi: gen
CinevaFaraNume: [8, 1, 6, 3, 4, 5, 2, 7, 0, 5] should equal [8, 1, 6, 3, 4, 5, 2, 7, 0, 9]. De unde apare un 9???
CinevaFaraNume: Si de ce dispare 5?
alexalghisi: I have no idea bro :(
CinevaFaraNume: Eu am facut exact ce a cerut cerinta pe care ai pus-o. Daca nu da la teste bine inseamna ca e incompleta.
alexalghisi: Poate putin :D
Alte întrebări interesante