Schreiben Sie ein Programm, das Leerzeichen hinzufügt oder entfernt, um Code gut zu formatieren. Regeln, wie der Code aussehen soll, wenn Sie fertig sind:
- Keine Zeile sollte mehr als eine von
{
und enthalten}
. - A
{
sollte immer das Letzte in einer Zeile sein. - A
}
sollte immer das einzige in einer Zeile sein (außer Leerzeichen, die davor stehen). - Die Anzahl der Leerzeichen vor jeder Zeile sollte ein festes Vielfaches der aktuellen Verschachtelungszahl sein. (Sie können beliebig viele Einrückungen verwenden, solange sich dies nicht ändert.)
- Es sollten keine Leerzeichen eingefügt oder entfernt werden, die nicht zur Erfüllung einer dieser Regeln beitragen.
Die Verschachtelungsanzahl für die erste Zeile ist 0. Die Verschachtelungsanzahl einer anderen Zeile ist die Verschachtelungsanzahl der vorherigen Zeile plus eins, wenn die vorherige Zeile a enthält {
, minus eins, wenn die aktuelle Zeile a enthält }
.
{
und }
innerhalb von String-Literalen und Kommentaren zählen in den obigen Regeln nicht. Ein Zeichenfolgenliteral ist Text in einfachen oder doppelten Anführungszeichen, wobei einfache oder doppelte Anführungszeichen mit einer ungeraden Anzahl von Backslashes unmittelbar davor nicht als Ende des Zeichenfolgenliterals interpretiert werden. Ein Kommentar ist Text, der in /*
und eingeschlossen ist */
, oder Text, der //
bis zum Ende der Zeile reicht. In einer Zeile mit mehreren Kommentar-Startmarkierungen zählt nur die erste. Kommentare werden nicht in String-Literalen analysiert.
Beispiele
main() {printf("Hello!"); // I don't care about the world...
}
becomes:
main() {
printf("Hello!"); // I don't care about the world...
}
int main(){
puts("a");
puts("b");
}
becomes:
int main(){
puts("a");
puts("b");
}
main()
{ printf("{"); /* }
} */
printf("}//}"); ///*
}
becomes:
main()
{
printf("{"); /* }
} */
printf("}//}"); ///*
}
int test[] = {1, 2, 3};
becomes:
int test[] = {
1, 2, 3
}
;