Python :: Aufgabe #274
3 Lösungen
Anzahl an Nachbar-Dupletten in einem Array
Anfänger - Python
von thunderbird
- 28.04.2020 um 09:38 Uhr
Es sollen die Anzahl von den Nachbar-Dubletten eines Zahlen-Arrays ermittelt werden. Die Nachbar-Dubletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden: Die Nachbar-Dubletten 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.
Beispiel:
Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 (Mitglieder von Index 0 und 1 sind benachbart, 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
Zusatzanforderungen:
- Unter 30 Zeilen Code
- Variable Länge der Arrays
- Alle reellen Zahlen werden akzeptiert
Es soll außerdem auf folgendes geachtet werden: Die Nachbar-Dubletten 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.
Beispiel:
Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 (Mitglieder von Index 0 und 1 sind benachbart, 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
Zusatzanforderungen:
- Unter 30 Zeilen Code
- Variable Länge der Arrays
- Alle reellen Zahlen werden akzeptiert
Lösungen:
array = [0, 3.4, 3.4, 3, 2, 7.2, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6]
anzahl = 0
for i in range(0,len(array)-1):
if array[i] != "X":
if array[i] == array[i+1]:
anzahl +=1
array[i]="X"
array[i+1]="X"
print(anzahl)# -*- coding: utf-8 -*-
a = []
counter = 0
x = 0
n = input("Bitte eine durch Kommata getrennte Zahlenreihe eingeben: ")
a = n.split(",")
while x < len(a)-1:
if (a[x] == a[x+1]):
counter = counter + 1
x = x + 1
x = x + 1
print(counter)
def check(value):
counter = 0
for index in range(len(value) - 1):
if value[index] == value[index+1]:
counter += 1
value[index+1] = None
return counter
examples = [[3, 3, 7],
[3, 3, 3],
[3, 3, 3, 3],
[0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ]]
for example in examples:
show_list = ', '.join(map(str, example))
doublets = check(example)
print(f'Die Liste {show_list} hat {doublets} Dublette{"" if doublets == 1 else "n"}.')
