Sobes.tech

Kotlin

Aké testovacie prípady je potrebné zvážiť pre metódu join? Aké optimalizácie je možné pridať?

Senior
326

// rezervácia(sedadlo_id, používateľ_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("Sedadlo nie je dostupné") 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
228

Prečo je v Map kľúč zatváracia zátvorka a hodnota otváracia? Čo by sa zmenilo, ak by sme to urobili naopak? Aká je zložitosť containsValue v porovnaní s get podľa kľúča?

Senior
204

/*Daný je reťazec, je potrebné implementovať funkciu na kontrolu správnosti označovania zátvoriek. Každá otváracia zátvorka musí mať zodpovedajúcu zatváraciu zátvorku. Otváracie a zatváracie zátvorky musia byť v správnom poradí. Typy zátvoriek: "{", "}", "(", ")", "[", "]". Vstup: "([]){}[(()())()]" Výsledok: true Vstup: "[(])" Výsledok: false Pretože zátvorky 2 a 3 sú nesprávne uvedené, zatváracia ']' sa objavuje skôr ako zatváracia '(' */ 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
164

/* VÝBER vľavo.K, vľavo.V1, vpravo.V2 Z vľavo JOIN vpravo ON vľavo.K = vpravo.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> vľavo, List<Pair<K, V2>> vpravo) { return null; } private static class Pair<A, B> { private A prvé; private B druhé; Pair(A prvé, B druhé) { this.prvé = prvé; this.druhé = druhé; } } private static class Triple<A, B, C> { private A prvé; private B druhé; private C tretie; Triple(A prvé, B druhé, C tretie) { this.prvé = prvé; this.druhé = druhé; this.tretie = tretie; } }

Senior
161