Sobes.tech

Kotlin

Ce cazuri de test trebuie luate în considerare pentru metoda join? Ce optimizări pot fi adăugate?

Senior
291

// rezervare(scaun_id, user_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("Locul nu este disponibil") 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

De ce în Map cheia este paranteza de închidere și valoarea cea de deschidere? Ce s-ar schimba dacă s-ar inversa? Care este complexitatea lui containsValue comparativ cu get după cheie?

Senior
198

/*Dat fiind un șir, este necesar să implementați o funcție pentru a verifica corectitudinea indicării parantezelor. Fiecare paranteză deschisă trebuie să aibă o paranteză închisă corespunzătoare. Parantezele deschise și cele închise trebuie să fie în ordinea corectă. Tipuri de paranteze: "{", "}", "(", ")", "[", "]". Intrare: "([]){}[(()())()]" Rezultat: true Intrare: "[(])" Rezultat: false Pentru că parantezele 2 și 3 sunt indicate incorect, închizătoarea ']' apare înaintea închizătoarei '(' */ 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

/* SELECTARE stânga.K, stânga.V1, dreapta.V2 DIN stânga JOIN dreapta ON stânga.K = dreapta.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> stanga, List<Pair<K, V2>> dreapta) { return null; } private static class Pair<A, B> { private A primul; private B al doilea; Pair(A primul, B al doilea) { this.primul = primul; this.al doilea = al doilea; } } private static class Triple<A, B, C> { private A primul; private B al doilea; private C al treilea; Triple(A primul, B al doilea, C al treilea) { this.primul = primul; this.al doilea = al doilea; this.al treilea = al treilea; } }

Senior
159