Python :: Aufgabe #105 :: Lösung #2

6 Lösungen Lösungen öffentlich
#105

Nachbar-Dupletten (Arrays)

Anfänger - Python von AlHedi - 30.04.2016 um 12:34 Uhr
Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden.
Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden:
Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, weil es noch einen gleichen Nachbar braucht.

bspw.: Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, der Index 2 braucht auch ein Nachbar aber hat keinen
Array = [3,3,3,3] : Ausgabe = 2
Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5

Entnommen aus dieser Aufgabenstellung: fotos-hochladen.net
#2
vote_ok
von AnnaIhrs (460 Punkte) - 05.07.2016 um 00:57 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python3
# -*- encoding: utf-8 -*-
#
#>>>autor:      Sebastian Müller
#>>>licence:    GPL
#>>>contact:    mypythonmueller@gmail.com
#

#Programm nach folgender Aufgabenstellung:

#Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden.
#Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
#Es soll außerdem auf folgendes geachtet werden:
#Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert -
#sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt,
#weil es noch einen gleichen Nachbar braucht.

#bspw.: Array = [3,3,7] : Ausgabe = 1
#Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart,
#der Index 2 braucht auch ein Nachbar aber hat keinen
#Array = [3,3,3,3] : Ausgabe = 2
#Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5


def nachbardupletten(array):
    runzahler = 0
    dupzahler = 0
    for i in array:
        runzahler += 1
        if runzahler == 1:
            akt = i
            continue
        if i == akt:
            dupzahler += 1
            runzahler = 0
        else:
            akt = i
    return dupzahler

arr1 = [3,3,3,3] #2
arr2 = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6] #5
arr3 = [1, 1, 3, 4, 5, 5, 5, 6, 3, 4, 4, 8, 8, 8, 8, 8, 9, 4,5, 5, 5, 7] #6
arr4 = [1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,] #6
arr5 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,] #11

print(nachbardupletten(arr1))
print(nachbardupletten(arr2))
print(nachbardupletten(arr3))
print(nachbardupletten(arr4))
print(nachbardupletten(arr5))

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben