Ich habe ein ernstes Problem. Ich habe einige Textdateien, in denen ich meine sehr wichtigen Nummern aufbewahre - alle wichtigen! Und zwei und drei ..
Diese Zahlen waren so wichtig, dass ich sie nicht diesen neuen Dezimal- oder Binärzahlensystemen anvertrauen konnte. Ich habe jede Zahl in Unary verschlüsselt, so:
+--+
| |
+---+ +----+ |
| | | |
+---+ +-------+
~/two.txt
Einfach und zuverlässig: zwei ASCII-Schleifen für die Nummer 2. Leider verwickeln sich diese Dinge mit der Zeit, und jetzt fällt es mir schwer, herauszufinden, wie viele Schleifen sich in jeder Datei befinden. Hier einige Beispiele, die ich von Hand ausgearbeitet habe:
Eins:
+---+
| |
+--+ |
| |
+--+ |
| |
| |
| |
+--+ +--+
| |
+---------+
Drei:
+---------+
| +-----+ |
| | +-+ | |
| | | | | |
| | +-+ | |
| +-----+ |
+---------+
Vier:
+--------------+
| +--+ +--+ |
| | | | | |
+-|-----|-----|----+
| | | | | | | |
| +--+ +--+ +--+ |
+------------------+
+------------+
| |
+-----+ +-----+ |
| | | |
+-----|-----------+ | |
| | +--+ | | | |
+-+ +--|--|--+ +---------+
| | +-+ | | |
+------+ | | | |
+-------+ | |
|| | |
|+-----+
| |
+---+
Fünf:
+--------+ +--------+ +--------+
| | | | | |
| +--|-----+ +--|-----+ |
| | | | | | | | | |
+-----|--+ +-----|--+ +--------+
| | | |
+--------+ +--------+
Können Sie mir helfen, meine Schleifen zu zählen?
Hier sind die Regeln:
- Da ich alles in ASCII-kodiertem Unary speichere, ist mir die Raumeffizienz sehr wichtig. Daher ist dies Codegolf. Das kleinste Programm in Bytes gewinnt.
- Schleifen werden mit den Zeichen +, -, | gezeichnet. Jede Ecke in der Schleife ist eindeutig gezeichnet: genau eines der Zeichen über und unter dem + ist | und genau eines nach rechts oder links ist -. Zwei + Zeichen sind niemals benachbart.
- Stränge können untereinander und untereinander verlaufen. Wenn sich die Litzen kreuzen, können Sie die "Unter" -Litze sofort auf beiden Seiten der "Über" -Litze sehen.
- Ihr Programm sollte eine Zeichenfolgendarstellung der Schleife (entweder von stdin oder als Funktionsparameter) nehmen und eine Zahl erzeugen (entweder zu stdout oder als Rückgabewert).
- Die Linienlängen in der Loop-Zeichnung sind möglicherweise nicht einheitlich, und auf jeder Linie befinden sich möglicherweise nachgestellte Leerzeichen.
- Sie können davon ausgehen, dass der Eingang mindestens eine Schleife enthält.
Ich zähle auf dich!
+
?