Join ыкмасы үчүн кайсы тест учурларын карап чыгуу керек? Кантип оптималдаштыруу кошсо болот?
Kotlin
// брондоо(отырук_номер, колдонуучу_номер) 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()
Mapте ачкыч жабык жактаган жана мааниси ачык жактаган болууда эмнеге? Эгер тескерисинче кылсак, эмне болот? containsValue менен getтин татаалдыгы кандай?
/* Тандоо сол.K, сол.V1, оң.V2 Солдон кошуу оңго ON сол.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.үчүнчү = үчүнчү; } }
/*Берилген жол бар, жакшылардын туура көрсөтүлүшүн текшерүү үчүн функцияны ишке ашыруу керек. Ар бир ачылуучу жакшыл жабылуучу жакшылга туура келиши керек. Ачылуучу жана жабылуучу жакшылдар туура тартипте болушу керек. Жакшылардын түрлөрү: "{", "}", "(", ")", "[", "]". Киргизүү: "([]){}[(()())()]" Жыйынтык: чын Киргизүү: "[(])" Жыйынтык: жалган Эмне үчүн 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(); }