Ich habe irgendwo gehört, dass eine Sache, die die Technologie noch nicht kann, das Falten von Handtüchern 1 ist . Es ist nun Ihre Aufgabe, diese Aussage als falsch zu beweisen!
Wenn Sie eine Zeichenfolge als Eingabe verwenden, die aus Rechtecken (Handtüchern) besteht, falten Sie jedes Handtuch zweimal in zwei Hälften. Beispielsweise:
+------+ +------+ +--+
| | | | | |
| | | | | |
| | -> +------+ -> +--+
| |
| |
| |
+------+
Beachten Sie, dass ein gefaltetes Handtuch zuerst gefaltet wird und dann von links nach rechts. Ihr Programm muss dieses Verhalten ebenfalls nachahmen. Beachten Sie auch, dass in den Testfällen die Handtücher an derselben Stelle bleiben, aber gefaltet sind.
Regeln:
- Standardmethoden für die Eingabe / Ausgabe.
- Es gelten Standardlücken.
- Eingabe und Ausgabe sollten als Zeichenfolge erfolgen.
- Schleppende Whatever sind in der Ausgabe in Ordnung, solange die Handtücher im richtigen Verhältnis zueinander stehen.
- Sie können davon ausgehen, dass die Länge jeder Seite des Handtuchs immer durch 2 teilbar ist.
- Die als Eingabe übergebenen Handtücher sind immer rechteckig.
Die Handtücher werden immer getrennt - sie können jedoch durch unterschiedliche Beträge getrennt werden.
Code-Golf , also gewinnt der kürzeste Code!
Testfälle:
Input:
+------+
| |
| |
| |
| |
| |
| |
+------+
Output:
+--+
| |
| |
+--+
Input:
+--+ +--+ +--+
| | | | | |
| | | | | |
+--+ +--+ +--+
Output:
++ ++ ++
++ ++ ++
Input:
+----+
| |
| |
| |
| | ++
+----+ ++
Output:
+-+
| |
+-+
+
Input:
+--+
+--+ ++
||
||
++
Output:
++
+
+
1: Dies wurde von Geobits und Laikoni widerlegt. Ich habe es jedoch irgendwo gehört.
Antworten:
Retina , 245 Bytes
Probieren Sie es online!
Hinweis: Einige Zeilen enden in Leerzeichen. Erläuterung:
Löschen Sie jede zweite Zeile von jedem Handtuch (dies funktioniert, weil alle Handtücher gleich hoch sind),
verschiebe alle abgetrennten Handtuchstücke nach oben,
und befestigen Sie den Boden der Handtücher und falten Sie sie effektiv zusammen.
Falten Sie die Handtücher der Breite 2 nach rechts.
Falten Sie die restlichen Handtücher nach rechts.
quelle
<-2>
es sich um eine .NET-Bilanzgruppe handelt?(?<-2>.)*
Popt die Aufnahme jedes Mal, kann sie also nicht mehr als die(.)*
zuvor ausgeführte wiederholen , während(?(2)(?!))
überprüft wird, dass keine Aufnahmen mehr vorhanden sind, sodass sie dieselbe Anzahl von Wiederholungen aufweist.Oktave mit Bildpaket ,
277272 BytesEingabe und Ausgabe sind 2D-Zeichen-Arrays.
Probieren Sie es online! Oder überprüfen Sie alle Testfälle: 1 , 2 , 3 , 4 . (Beachten Sie, dass
endfunction
in den Testfällen nur die Funktion vom nachfolgenden Code getrennt werden muss. Dies ist nicht erforderlich, wenn die Funktion in einer eigenen Datei gespeichert ist.)Lesbare Version und Erklärung
quelle