Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
kbr hat geschrieben:ich sehe keine speziellen Zeilenenden, weder in der Beschreibung bei SPOJ bezüglich des Inputs noch in den Daten die raw_input() selber liefert.
Für Python könnte ich mir höchstens Wettbewerbe vorstellen, wo man möglichst wenig Zeilen benutzen soll. Ich glaube, da kann die Sprache eher ihre Stärken ausspielen.
(Ich bitte, von möglichen Semikolon-Witzen abzusehen...)
kbr hat geschrieben:ich sehe keine speziellen Zeilenenden, weder in der Beschreibung bei SPOJ bezüglich des Inputs noch in den Daten die raw_input() selber liefert.
Dann sende es doch bei SPOJ mal ein ...
Eigentlich ist es mir auch egal. Von mir aus dann eben
snafu hat geschrieben:Für Python könnte ich mir höchstens Wettbewerbe vorstellen, wo man möglichst wenig Zeilen benutzen soll. Ich glaube, da kann die Sprache eher ihre Stärken ausspielen.
(Ich bitte, von möglichen Semikolon-Witzen abzusehen...)
Dann wäre der "echte Einzeiler" von BlackVivi der Matchwinner ...
n=p=0
for c in raw_input()[1:-1]:
if c.islower():p+=1
else:n+=3-p%4;p=0
print n
... meine kürzeste "konventionelle" Version.
Die berücksichtigt noch nicht die garstigen Zeilenenden, die weg müssen. Macht man aus dem [1:] ein [1:-1] ergeben sich 81 Bytes für eine SPOJ-lauffähige Fassung.
Allerdings lässt sich auf dieser Grundlage durch einen kleinen Eingriff eine 74-Byte-Fassung erzeugen:
snafu hat geschrieben:Für Python könnte ich mir höchstens Wettbewerbe vorstellen, wo man möglichst wenig Zeilen benutzen soll. Ich glaube, da kann die Sprache eher ihre Stärken ausspielen.
(Ich bitte, von möglichen Semikolon-Witzen abzusehen...)
Weil es keine { und } hat sind so wenig Zeilen wie moeglich noch bloedsinniger...
name hat geschrieben:Weil es keine { und } hat sind so wenig Zeilen wie moeglich noch bloedsinniger...
Das verstehe ich nicht.
Edit: Außerdem gibt es doch { und } in Python ...
da is mit ein paar ifs, fors, oder was weiss ich die eine zeile schon weg.
Tut mir leid, vielleicht bin ich gerade etwas begriffsstutzig, aber ich verstehe immer noch nicht, ob du meinst, dass Python im Falle des Zeilenzählens nicht gut weggekäme (so meine Vermutung) oder etwas anderes.
Falls du das meinst: Es gibt doch elegante Konstrukte wie z.B. LCs oder mächtige Funktionen, mit denen man auf einen Rutsch in einer Zeile ohne Semikolon eine Menge machen kann.
numerix hat geschrieben:Es gibt doch elegante Konstrukte wie z.B. LCs oder mächtige Funktionen, mit denen man auf einen Rutsch in einer Zeile ohne Semikolon eine Menge machen kann.
Genau das meinte zumindest ich. Vielleicht kann Python seine Stärken nicht in der konkreten Aufgabe ausspielen aber doch wohl in so einigen anderen Fällen.
Die Kritik, dass möglichst kurzer Code != optimaler Code ist, ist natürlich berechtigt, hier aber - so finde ich - irrelevant. Man kann den Leuten doch auch mal ihren Spass mit solchen Wettbewerben lassen.
Die berücksichtigt noch nicht die garstigen Zeilenenden, die weg müssen.
Wo wird sowas bei der Aufgabenstellung erwähnt?
(Und welchen Einfluß hat es überhaupt? Hinten muss doch nicht aufgefüllt werden und Ausgegeben werden sollen die doch auch nicht).
Außerdem teste ich gerade nur unter Windows "\r\n"-Zeilenenden sind da die Regel.
Wir haben schon 10% vom 21. Jahrhundert hinter uns!
Mal im Ernst: Worauf willst du mit solchen Argumenten hinaus? Es bestreitet niemand, dass gewisse Konstrukte sich auch bei Python über mehrere Zeilen erstrecken, trotzdem kann man IMHO zurecht behaupten, dass in sehr vielen Fällen weniger Zeilen in Python nötig sind als in anderen Sprachen, um bestimmte Probleme zu lösen.