Sobes.tech

Kotlin

Welche Testfälle sollten für die join-Methode betrachtet werden? Welche Optimierungen können hinzugefügt werden?

Senior
291

// buchung(sitz_id, benutzer_id) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null || seat.status == "booked") rollback return error("Sitz ist nicht verfügbar") insert into bookings (user_id, seat_id, status, created_at) values (user_id, ...) update seats set status = 'booked' where id = seat_id commit return success()

Senior
218

Warum ist in Map der Schlüssel die schließende Klammer und der Wert die öffnende? Was würde sich ändern, wenn man es umkehrt? Wie ist die Komplexität von containsValue im Vergleich zu get nach Schlüssel?

Senior
196

/*Angenommen, eine Zeichenkette wird gegeben, es ist notwendig, eine Funktion zu implementieren, um die Korrektheit der Klammerangabe zu überprüfen. Jede öffnende Klammer muss eine entsprechende schließende Klammer haben. Öffnende und schließende Klammern müssen in der richtigen Reihenfolge stehen. Klammerarten: "{", "}", "(", ")", "[", "]". Eingabe: "([]){}[(()())()]" Ergebnis: true Eingabe: "[(])" Ergebnis: false Weil die Klammern 2 und 3 falsch angegeben sind, erscheint die schließende ']' vor der schließenden '(' */ public boolean check(String s){ Deque<Character> stack = new ArrayDeque<>(); Map<Character, Character> map = Map.of( ')', '(', ']', '[', '}', '{' ); // ((( for( char c : s.toCharArray()){ if(map.containsValue(c)){ stack.push(c); } else if(map.containsKey(c)){ if( stack.isEmpty() || stack.pop() != map.get(c)){ return false; } } } return stack.isEmpty(); }

Senior
160

/* AUSWAHL links.K, links.V1, rechts.V2 VON links JOIN rechts AUF links.K = rechts.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> links, List<Pair<K, V2>> rechts) { return null; } private static class Pair<A, B> { private A erster; private B zweiter; Pair(A erster, B zweiter) { this.erster = erster; this.zweiter = zweiter; } } private static class Triple<A, B, C> { private A erster; private B zweiter; private C dritter; Triple(A erster, B zweiter, C dritter) { this.erster = erster; this.zweiter = zweiter; this.dritter = dritter; } }

Senior
155