Aan de slagBegin gratis

Subarrays benaderen

Aan de slag met elementen in NumPy-arrays! Je taak is om een vierkante tweedimensionale array square met grootte size om te zetten naar een lijst volgens een spiraalpatroon:

Traversing the matrix in spiral way

In plaats van alleen bepaalde slices te pakken, maak je een algemenere oplossing met een for-lus (de oplossing moet werken voor alle vierkante tweedimensionale arrays met een oneven grootte).

De module numpy is al geïmporteerd als np.

Je hebt de functie reversed() nodig, die een Iterable omkeert.

Deze oefening maakt deel uit van de cursus

Oefenen met coding-interviewvragen in Python

Bekijk cursus

Oefeninstructies

  • Zet elk deel dat met een rode pijl is gemarkeerd om naar een lijst.
  • Zet elk deel dat met een groene pijl is gemarkeerd om naar een lijst.
  • Zet elk deel dat met een blauwe pijl is gemarkeerd om naar een lijst.
  • Zet elk deel dat met een magenta pijl is gemarkeerd om naar een lijst.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

spiral = []

for i in range(0, size):
    # Convert each part marked by any red arrow to a list
    spiral += list(square[i, ____:____])
    # Convert each part marked by any green arrow to a list
    spiral += list(square[____:____, size-i-1])
    # Convert each part marked by any blue arrow to a list
    spiral += list(reversed(square[size-i-1, ____:____]))
    # Convert each part marked by any magenta arrow to a list
    spiral += list(reversed(square[____:size-i-1, ____]))
        
print(spiral)
Code bewerken en uitvoeren