Kādus testēšanas gadījumus jāapsver join metodes? Kādas optimizācijas var pievienot?
Kotlin
// rezervācija(sēdvietas_numurs, lietotāja_numurs) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null || seat.status == "booked") rollback return error("Vieta nav pieejama") 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()
Kāpēc Map slepenais irats ir aizvēršanas iekavas, bet vērtība ir atvēršanas iekava? Kas mainītos, ja to apgrieztu? Kāda ir containsValue sarežģītība salīdzinājumā ar get pēc atslēgas?
/*Dotā ir virkne, nepieciešams īstenot funkciju, lai pārbaudītu iekavās norādīšanas pareizību. Katram atvērtajam iekavām jābūt atbilstošai aizvērtajai iekavai. Atvērtās un aizvērtās iekavas jābūt pareizā secībā. iekavu veidi: "{", "}", "(", ")", "[", "]". Ievade: "([]){}[(()())()]" Rezultāts: true Ievade: "[(])" Rezultāts: false Jo 2. un 3. iekavas ir norādītas nepareizi, aizvēršana ']' parādās pirms aizvēršanas '(' */ 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(); }
/* IZVĒLE kreisais.K, kreisais.V1, labais.V2 NO kreisais PIESLĒGT labais ON kreisais.K = labais.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> kreisais, List<Pair<K, V2>> labais) { return null; } private static class Pair<A, B> { private A pirmais; private B otrais; Pair(A pirmais, B otrais) { this.pirmais = pirmais; this.otrais = otrais; } } private static class Triple<A, B, C> { private A pirmais; private B otrais; private C trešais; Triple(A pirmais, B otrais, C trešais) { this.pirmais = pirmais; this.otrais = otrais; this.trešais = trešais; } }