Seite 3 von 3
Re: Code-Golf
Verfasst: Donnerstag 16. Januar 2025, 21:46
von __blackjack__
Wobei der Punktoperator halt genau das ist: ein Operator — da kann man auch einfach Leerzeichen drum herum setzen:
Also kann man das auch so schreiben, mit einem Punkt und der gleichen Zeichenanzahl:
Re: Code-Golf
Verfasst: Donnerstag 16. Januar 2025, 21:53
von narpfel
Die Version hier gefällt mir noch ein bisschen besser:
Man kann hier sowohl ein `int` als auch ein `float` benutzen, weil `0 == 0.0`.
Re: Code-Golf
Verfasst: Freitag 1. August 2025, 19:07
von Dennis89
Bekommt ihr das kürzer hin? Jede Zahl einzeln quadrieren, die Ergebnisse zusammen setzen und ein Integer zurück geben.
Code: Alles auswählen
s=lambda n:int("".join(map(lambda x:str(int(x)**2), str(n))))
def main():
assert s(9119) == 811181
if __name__ == '__main__':
main()
Grüße
Dennis
Edit: ohne `map` ist's kürzer:
Code: Alles auswählen
s=lambda n:int("".join(str(int(x)**2) for x in str(n)))
Re: Code-Golf
Verfasst: Freitag 1. August 2025, 21:21
von __blackjack__
Man kann das Leerzeichen vor ``for`` noch weg lassen.
Re: Code-Golf
Verfasst: Samstag 2. August 2025, 07:05
von Dennis89
Ja Mist, übersehen

Re: Code-Golf
Verfasst: Samstag 2. August 2025, 13:31
von Dennis89
Im letzten Moment noch auf `key` in `sorted` gekommen:
Code: Alles auswählen
h=lambda n:"".join(f"{i[-1]} {i[0]}"for i in[sorted(n.split(),key=int)])
def main():
assert h("8 3 -5 42 -1 0 0 -9 4 7 4 -4") == "42 -9"
assert h("42") == "42 42"
if __name__ == '__main__':
main()
Rückgabe der größten, gefolgt von der kleinsten Zahl, als String mit Leerzeichen getrennt. Wenn nur ein Wer übergeben wird, soll dieser zwei mal zurück gegeben werden.
Grüße
Dennis
Re: Code-Golf
Verfasst: Samstag 2. August 2025, 13:42
von narpfel
Code: Alles auswählen
lambda n:f"{(x:=sorted(n.split(),key=int))[-1]} {x[0]}"
Re: Code-Golf
Verfasst: Samstag 2. August 2025, 17:29
von Dennis89
Yeah, coole Lösung
