SSpanSorbus
Arbeitsabläufe

Arbeitsabläufe für Code · Brückenkanten ungerichteter Graphen

03
Produkt

Arbeitsabläufe

Finde Brücken in einem einfachen ungerichteten Graphen mit höchstens 32 Knoten. Prüfe getrennte Komponenten und Zyklen und lehne doppelte Kanten, Schleifen und ungültige Endpunkte ohne Eingabeänderung ab.

01

Anwendung herunterladen

Wählen Sie einen Ordner und lassen Sie die betreffenden Dateien vor einer Änderung lesen. Legen Sie Ziel und Grenzen der Aufgabe fest.

02

Projektordner öffnen

Wählen Sie einen kompatiblen Endpunkt. Verfügbare Werkzeuge und Antwortqualität hängen vom konfigurierten Modell und Server ab.

03

Modell verbinden und testen

Prüfen Sie Änderungen und Befehlsausgaben. Führen Sie die Projektprüfungen aus, bevor Sie das Ergebnis übernehmen; erzeugter Code ist nicht automatisch getestet.

04

Änderungen prüfen und Tests ausführen

Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.

Brückenkanten ungerichteter Graphen

Arbeitsabläufe
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)

Vor dem Anwenden prüfen. Prüfen Sie Änderungen und Befehlsausgaben. Führen Sie die Projektprüfungen aus, bevor Sie das Ergebnis übernehmen; erzeugter Code ist nicht automatisch getestet.

KI-Arbeitsumgebung für Code

Hier beginnt Ihre nächste Idee.

Für Windows herunterladen ↗