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!')
