Einführung
In dieser Herausforderung erhalten Sie einen gerichteten Graphen mit Selbstschleifen. Ihre Aufgabe besteht darin, ihn in einen ungerichteten Graphen ohne Selbstschleifen umzuwandeln.
Eingang
Ihre Eingabe ist ein gerichteter Graph, bei dem der Scheitelpunkt {0, 1, ..., n-1}
für eine natürliche Zahl festgelegt ist n ≥ 0
(oder {1, 2, ..., n}
wenn Sie eine 1-basierte Indizierung verwenden). Der Graph wird als längs- gegeben n
Liste , L
wo Sie L[i]
eine Liste der out-Nachbarn von Vertex i
. Die Liste [[0,1],[0],[1,0,3],[]]
repräsentiert beispielsweise das Diagramm
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
Beachten Sie, dass die Nachbarlisten nicht unbedingt geordnet sind, aber garantiert keine Duplikate enthalten.
Ausgabe
Ihre Ausgabe ist ein anderes Diagramm im gleichen Format wie die Eingabe, das wie folgt daraus erhalten wird.
- Löschen Sie alle Self-Loops.
- Fügen Sie für jede verbleibende Kante
u -> v
die umgekehrte Kante hinzu,v -> u
falls diese noch nicht vorhanden ist.
Wie bei der Eingabe sind die Nachbarlisten des Ausgabediagramms möglicherweise ungeordnet, dürfen jedoch keine Duplikate enthalten. Für das obige Diagramm wäre eine korrekte Ausgabe [[1,2],[0,2],[0,1,3],[2]]
, die das Diagramm darstellt
0<->2<->3
^ ^
| |
v |
1<--'
Regeln
In den Diagrammen können Sie 0-basierte oder 1-basierte Indizierung verwenden. Beide Funktionen und vollständige Programme sind akzeptabel. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
Diese Testfälle verwenden eine 0-basierte Indizierung. Inkrementieren Sie jede Zahl im 1-basierten Fall. Diese Nachbarlisten werden in aufsteigender Reihenfolge sortiert, sind jedoch nicht erforderlich.
[] -> []
[[0]] -> [[]]
[[],[0,1]] -> [[1],[0]]
[[0,1],[]] -> [[1],[0]]
[[0,1],[0],[1,0,3],[]] -> [[1,2],[0,2],[0,1,3],[2]]
[[3],[],[5],[3],[1,3],[4]] -> [[3],[4],[5],[0,4],[1,3,5],[2,4]]
[[0,1],[6],[],[3],[3],[1],[4,2]] -> [[1],[0,5,6],[6],[4],[3,6],[1],[1,2,4]]
[[6],[0,5,1],[5,4],[3,5],[4],[5,6],[0,3]] -> [[1,6],[0,5],[4,5],[5,6],[2],[1,2,3,6],[0,3,5]]
[[1,0],[5,1],[5],[1],[5,7],[7,1],[],[1]] -> [[1],[0,3,5,7],[5],[1],[5,7],[1,2,4,7],[],[1,4,5]]
[[2,8,0,9],[5,2,3,4],[0,2],[3,7,4],[8,1,2],[5,1,9,2],[6,9],[6,5,2,9,0],[9,1,2,0],[3,9]] -> [[2,7,8,9],[2,3,4,5,8],[0,1,4,5,7,8],[1,4,7,9],[1,2,3,8],[1,2,7,9],[7,9],[0,2,3,5,6,9],[0,1,2,4,9],[0,3,5,6,7,8]]
.e
wurde gerade vonk,Y
auf umgestelltk,b
, also benutze.e-.|f}k@QTUQbkQ