Sobes.tech

Kotlin

Kādus testēšanas gadījumus jāapsver join metodes? Kādas optimizācijas var pievienot?

Senior
291

// 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()

Senior
218

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?

Senior
198

/*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(); }

Senior
160

/* 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; } }

Senior
159