Python :: Aufgabe #347
3 Lösungen

Zweitgrößte Ziffer eines alphanumerischen Textes
Anfänger - Python
von JKooP
- 18.04.2021 um 11:04 Uhr
Gegeben ist ein alphanumerischer Text (String) der nur Kleinbuchstaben und die positiven Ziffern 0-9 enthält.
Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln.
Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden.
Beispiele:
t = "abc12321efg"
Lösung: 2 => [1, 2, 3]
t = "abc111def"
Lösung: -1 => [1] Kein zweiter Wert vorhanden!
Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Viel Spaß
Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln.
Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden.
Beispiele:
t = "abc12321efg"
Lösung: 2 => [1, 2, 3]
t = "abc111def"
Lösung: -1 => [1] Kein zweiter Wert vorhanden!
Erstelle eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Viel Spaß
Lösungen:

""" #347: Zweitgrößte Ziffer eines alphanumerischen Textes Ziel soll es sein, die zweitgrößte Ziffer (nicht Index) des Textes zu ermitteln. Ist kein zweitgrößter Wert enthalten, soll als Ergebnis -1 ausgegeben werden. """ def prf_2num(text): arr = [] for alle in text: arr.append(alle) text = sorted(set(arr)) if text[0].isdecimal() is True and text[1].isdecimal() is True: print(text, "Loesung:", (text[1])) else: print(text, "Kein zweiter numerischer Wert vorhanden", (text[0])) def main(): prf_2num("abc12321efg") prf_2num("abc111def") if __name__ == '__main__': main()

def second_max_digit(alpha_num_string): char_set_nums = {ord(char) for char in alpha_num_string if ord(char) < 97} if len(char_set_nums) > 1: return chr(sorted(char_set_nums, reverse=True)[1]) else: return "-1" # test data = ["abc12321efg", "abc111def", "yyoxicuwoeiru9887hksjdhf123985345", "abcxxnodigithereyyycba"] for el in data: print(f'{el}: {second_max_digit(el)}')

def ist_ziffer(text): z = [] for i in text: if i.isdigit() and not int(i) in z: z.append(int(i)) z.sort() return z beispiele = ["abc12321efg", "abc111def"] for t in beispiele: print('\nt = "{}"'.format(t)) try: print('Lösung: {} => {}'.format( ist_ziffer(t)[-2], ist_ziffer(t))) except: print('Lösung: {} => {}'.format( ist_ziffer(t)[-1], ist_ziffer(t)), 'Kein zweiter Wert vorhanden!')