numerix hat geschrieben:Das verstehe ich nicht.name hat geschrieben:Weil es keine { und } hat sind so wenig Zeilen wie moeglich noch bloedsinniger...
Code: Alles auswählen
if [foo]:
do something
do something else
numerix hat geschrieben:Das verstehe ich nicht.name hat geschrieben:Weil es keine { und } hat sind so wenig Zeilen wie moeglich noch bloedsinniger...
Code: Alles auswählen
if [foo]:
do something
do something else
name hat geschrieben:geht schwer mit einer zeile.Code: Alles auswählen
if [foo]: do something do something else
Code: Alles auswählen
if foo: do_something()
Es wird nicht erwähnt - das ist ja das Problem. Deshalb habe ich in meinem eröffnenden Posting extra darauf hingewiesen.b.esser-wisser hat geschrieben:Wo wird sowas bei der Aufgabenstellung erwähnt?Die berücksichtigt noch nicht die garstigen Zeilenenden, die weg müssen.
(Und welchen Einfluß hat es überhaupt?
Für Haskell bin ich ja sogar für'ne Ausgabe zu plöd, also... >_<DasIch hat geschrieben:In Python schon. Du könntest ja Haskell nehmenBlackVivi hat geschrieben:Sind diese ganzen funktionalen Sachen so langsam? ._. Ich find die total toll.
Generell nein, in Python sind aber Funktionsaufrufe recht teuer und Endrekursion wird nicht optimiert, daher sind funktionale Lösungen oft nicht die schnellsten. Ich nutze sie aber trotzdem gerne wo man die Laufzeit verkraften kann.BlackVivi hat geschrieben:Sind diese ganzen funktionalen Sachen so langsam? ._. Ich find die total toll.
Mich begeistert ja immernoch die 356 Bytes Lösung, die ungefähr 5x so langsam ist wie die anderen und auch noch mehr Speicher braucht (weil irgendwelche Module eingebunden wurden).BlackVivi hat geschrieben:Faszinierend auch, meine echte Einzeiler Lösung ist auch die langsamste auf der ersten Seite =D
numerix hat geschrieben:Mich begeistert ja immernoch die 356 Bytes Lösung, die ungefähr 5x so langsam ist wie die anderen und auch noch mehr Speicher braucht (weil irgendwelche Module eingebunden wurden).BlackVivi hat geschrieben:Faszinierend auch, meine echte Einzeiler Lösung ist auch die langsamste auf der ersten Seite =D
Code: Alles auswählen
class Function(object):
def __init__(self, function, *args):
self.function = function
self.args = list(args)
def get_number_of_args(self):
return len(self.args)
def add_arg(self, arg):
self.args.append(arg)
class Argument(object):
def __init__(self, arg):
self.arg = arg
class Parser(object):
def __init__(self, src):
t = Tokenizer(src)
self.lister = t.yield_token()
def get_next_function(self):
func = Function(self.lister.next())
class Tokenizer(object):
def __init__(self, text):
self.text = text
def yield_token(self):
for i in text:
yield i
Ja. Aber man kann was draus machen (Score 66 bei SPOJ).numerix hat geschrieben:Es sind 73 Bytes und mit der SPOJ-Original-Eingabe läuft es immer noch nicht ..wuf hat geschrieben:Hallo kbr
Da wir PEP-8 vernachlässigen könnten wir doch auch noch beim einrücken einige Zeichen einsparen:Sind total 69 ZeichenCode: Alles auswählen
N=p=0 for c in raw_input(): if c<'a' and p:N+=4-p;p=0 p=(p+1)%4 print N
Gruss wuf
Gratuliere!bords0 hat geschrieben:Ja. Aber man kann was draus machen (Score 66 bei SPOJ).numerix hat geschrieben:Es sind 73 Bytes und mit der SPOJ-Original-Eingabe läuft es immer noch nicht ..wuf hat geschrieben:Hallo kbr
Da wir PEP-8 vernachlässigen könnten wir doch auch noch beim einrücken einige Zeichen einsparen:Sind total 69 ZeichenCode: Alles auswählen
N=p=0 for c in raw_input(): if c<'a' and p:N+=4-p;p=0 p=(p+1)%4 print N
Gruss wuf
Ein nicht ganz offensichtlicher Trick ist vielleicht:numerix hat geschrieben:Seit eben gibt es bei SPOJ eine 66 Bytes Python Lösung ...
Edit: Ich vermute es war jemand hier aus dem Forum. Wäre nett, wenn er seine Lösung zur gegebenen Zeit mal zeigen würde ...
Nein, stattdessen habe ich mir Platz 1 zurück erorbert: 63 Bytes ...snafu hat geschrieben:Tust du's jetzt?numerix hat geschrieben:@snafu: So lange ich mit meinem Code in der SPOJ-Rangliste für Python auf Platz 1 stehe, werde ich ihn noch nicht rausrücken ...
Dann oute ich mich mal. Dachte das wäre kein Problem, wenn ich einfach mal den Code ausprobiere Ich wollte sichergehn, dass wenn ich den Code schon als Ausgangsbasis benutze, er auch wirklich funktioniert. Leider fällt mir zu dem Code keine Verbesserung mehr ein und meine anderen Ansätze sind noch länger.numerix hat geschrieben:Nachtrag: Auffällig ist, dass vor ein paar Minuten eine weitere Python Lösung mit 74 Bytes aus "Germany" bei SPOJ aufgetaucht ist - das entspricht genau der Länge des kürzesten bisher hier (und zwar von mir) geposteten Codes. Kann natürlich Zufall sein ...
Das ist anständig.Nocta hat geschrieben:Dann oute ich mich mal.numerix hat geschrieben:Nachtrag: Auffällig ist, dass vor ein paar Minuten eine weitere Python Lösung mit 74 Bytes aus "Germany" bei SPOJ aufgetaucht ist - das entspricht genau der Länge des kürzesten bisher hier (und zwar von mir) geposteten Codes. Kann natürlich Zufall sein ...
Davon konnte man eigentlich ausgehen.Nocta hat geschrieben:Ich wollte sicher gehn, dass wenn ich den Code schon als Ausgangsbasis benutze, er auch wirklich funktioniert.
Damit haben wir jetzt schon die ein oder andere Perl-Lösung auf die Plätze verwiesen ...BlackJack hat geschrieben:So, nun habe ich auch eine 65er Lösung.