Sobes.tech

Kotlin

Որոնք են այն թեստային դեպքերը, որոնք պետք է դիտարկել join մեթոդի համար: Ի՞նչ օպտիմիզացիաներ կարելի է ավելացնել:

Senior
298

// ամրագրում(կենդանի_համար, օգտվող_համար) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null || seat.status == "booked") rollback return error("Ամրագրումը հասանելի չէ") 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
222

Ինչու Map-ում բանալի է փակագիծը, իսկ արժեքը բացագիծը: Ինչ կլինի, եթե հակառակը անենք: Ինչ է containsValue-ի բարդությունը համեմատած get-ի հետ բանալիով:

Senior
198

/* Ընտրություն ձախ.K, ձախ.V1, աջ.V2 Ձախից Միացեք աջի վրա ON ձախ.K = աջ.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> ձախ, List<Pair<K, V2>> աջ) { return null; } private static class Pair<A, B> { private A առաջին; private B երկրորդ; Pair(A առաջին, B երկրորդ) { this.առաջին = առաջին; this.երկրորդ = երկրորդ; } } private static class Triple<A, B, C> { private A առաջին; private B երկրորդ; private C երրորդ; Triple(A առաջին, B երկրորդ, C երրորդ) { this.առաջին = առաջին; this.երկրորդ = երկրորդ; this.երրորդ = երրորդ; } }

Senior
161

/*Տրված է տող, անհրաժեշտ է իրականացնել ֆունկցիա փակագծերի նշման ճիշտությունը ստուգելու համար: Յուրաքանչյուր բացվող փակագիծ պետք է համապատասխան լինի փակվող փակագծին: Բացվող և փակվող փակագծերը պետք է լինեն ճիշտ հերթականությամբ: Փակագծերի տեսակները: "{", "}", "(", ")", "[", "]". Ներմուծում: "([]){}[(()())()]" Արդյունք: true Ներմուծում: "[(])" Արդյունք: false Քանի որ 2-րդ և 3-րդ փակագծերը սխալ են նշված, փակվող ']'-ը հայտնվում է նախքան փակվող '(' */ 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