[Python-de] Noch eine Denksportaufgabe

Gerhard Häring gerhard.haering at opus-gmbh.net
Thu Oct 10 10:47:50 EDT 2002


Im DSE Wiki wird gerade folgende Aufgabe gestellt
(http://www.wikiservice.at/dse/wiki.cgi?SoftwareDenkSport_2):

    Schreibe eine Prozedur, die die Elemente eines Arrays mit M Elementen um n
    rotiert. -M < n < M

    Beispiel: M = 6, n = 2. Vorher: {1, 2, 3, 4, 5, 6} Nachher: {5, 6, 1, 2, 3, 4}

    Versuche Speicherbedarf zu minimieren. 

Eine simple Python-Lösung von mir wäre:

    def rot(lst, n):
        if n < 0: n = len(lst) + n
        for i in xrange(n):
            lst.insert(0, lst.pop(-1))

diese wurde aber kritisiert, weil sie nicht mit ARRAYs arbeitet. Gesucht ist
also eine Lösung, die mit wirklichen ARRAYs arbeitet (z. B. array.array oder
einfach die listenspezifischen Methoden wie pop/insert/append/... weglassen).

-- Gerhard






More information about the Python-de mailing list