Sobes.tech

რა პროგრამირების ენებს იყენებთ Go-ს გარდა?

246

ახლა მუშაობთ თუ არა, და რა ფორმატში: ოფისი, ჰიბრიდი, დისტანციური?

246

/* අපට මූලාශ්‍රයකින් දත්ත කිසියම් පරිභෝජකයකුට මාරු කළ යුතුය. මේදී මූලාශ්‍රය කුඩා කට්ටලවලින් (~ දස ගණනක් වාර්තා) දත්ත ලබා දී ඇති අතර, පරිභෝජකයා විශාල බචක සමඟ වැඩ කිරීම වඩාත් ප්‍රයෝජනවත් වේ. සත්‍ය උදාහරණයක් - Kafka වර්ගයේ පෙළගැස්මවලින් දත්ත ලබා දීම Clickhouse දත්තගබඩාවට. මූලාශ්‍රය: - කොන්දේසි ලෙස අසීමිත. - මූලාශ්‍රය එක් කැඳවීමකදී MaxItems වඩා වැඩි වාර්තා ආපසු නොදේ. - එක "සෙෂන්" (Pipe ක්‍රියාවලියක්) තුළ, මූලාශ්‍රය සෑම කැඳවීමකදී නව දත්ත ආපසු දක්වයි. - එහෙත්, නැවත ආරම්භ කිරීමෙන් පසු, මූලාශ්‍රය පසුගිය "තහවුරු කළ" තැනින් ආරම්භ වේ, එය cookie මගින් නියමිතයි. එමනිසා, Next කැඳවීමෙන් ආපසු ලැබූ සෑම cookie අගයක්ම, දත්ත සුරක්ෂිත කිරීමෙන් පසු, Commit මඟින් තහවුරු කළ යුතුය, එය ඒම අනුක්‍රමිකත්වයෙන්, Next විසින් ආපසු ලබා දී ඇත්තේ මෙන්. පරිභෝජක: - MaxItems වඩා වැඩි දේ එකවර සැකසිය නොහැක. මූලික මට්ටම: func Pipe(p Producer, c Consumer) error ක්‍රියාවලිය ක්‍රියාත්මක කළ යුතුය, ඒක මූලාශ්‍රයෙන් දත්ත කියවීම, ඒවා MaxItems අධික නොවන බෲෆරයට සමූහ කිරීම, සහ පසුදා ඒවා පරිභෝජකයට සුරක්ෂිත කිරීම, ඒ අනුව මූලාශ්‍රයේ ප්‍රගතිය තහවුරු කිරීම. */ const MaxItems = 9999 type Producer interface { // Next ආපසු දක්වයි: // - සැකසිය යුතු අයිතම කට්ටලයක් // - තහවුරු කිරීම සඳහා cookie // - දෝෂයක් Next() (items []any, cookie int, err error) // Commit යනු, සැකසූ දත්ත කට්ටලය සලකුණු කිරීම සඳහා Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

244

რა მაჩვენებლებს იყენებდით თქვენი მუშაობის შეფასებისთვის ბოლო პროექტში?

Junior — Middle
242

func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) n := len(s) for right := 0; right < n; right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }

242

""" සිනමාහලේ ස්ථාන එක පේළියක් ලෙස පිහිටා ඇත. නව පැමිණෙන නරඹන්නෙකු ස්ථානයක් තෝරයි, සියල්ලන්ගෙන් දුරස්ව සිටීමට. එනම්, එම ස්ථානය, ඒකට වාසස්ථානයට ඉතා ආසන්න නරඹන්නෙකුට ඇති දුර අධිකම විය යුතුය. සෑම විටම හිස් ස්ථාන තිබෙන බව සහ අවම වශයෙන් එක නරඹන්නෙක් ඉඳගෙන ඇති බව සහතික වේ. දී ඇති ස්ථාන මාලාව (සෙරෝ සහ වාසියන් අඩංගු අරේ) මත පදනම්ව, තෝරාගත් ස්ථානයෙන් ඒකට වාසස්ථානයට දුර (සෙරෝ සහ වාසියන් අතර ඇති පළවෙනි ගණන) ආපසු ලබා දෙන ක්‍රියාවලියක් ලියන්න. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }

241

/* * მთლიანი მთელი რიცხვების მასივი და X რიცხვი მოცემულია, * საჭიროა იპოვოთ ყველაზე გრძელი არასრული ქვედაწილი, რომლის მინიმუმიც X-ია. * დააბრუნეთ ამ ქვედაწილის სიგრძე ან -1 თუ ასეთი არ არსებობს. */

240

""" კინოთერის ადგილები ერთ რიგშია განლაგებული. ახალი მოსული მაყურებელი არჩევს ადგილს, მოსახერხებლად მაქსიმალურად მოშორებით სხვა მაყურებლებს, რიგში. ანუ, ადგილიდან, სადაც ის დაჯდება, ყველაზე ახლოს მყოფ მაყურებელთან მანძილი უნდა იყოს მაქსიმალური. გაიგება, რომ ყოველთვის არსებობს თავისუფალი ადგილები და უკვე დაჯდა მინიმუმ ერთი მაყურებელი. დაწერეთ ფუნქცია, რომელიც მოცემული ადგილების რიგიდან (ნოლებისა და ერთების მასივი) დააბრუნებს მანძილს (სკამებს შორის სვლების რაოდენობას) ადგილიდან ყველაზე ახლოს მყოფ მაყურებელამდე. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

240

თქვენი გამოცდილება რა არის ავტორიზაციის და ავტორიზაციის სისტემების დანერგვაში და კონფიგურაციაში?

Junior — Middle
240

რა განსხვავებაა L4 და L7 ტვირთის გამანაწილებლის შორის?

239

როგორ განისაზღვრება Map მონაცემთა სტრუქტურაში გასაღებით ელემენტის დამატების ოპერაციის შესრულების დრო?

Junior — Middle
235

რომელი პროექტი უნდა ავირჩიოთ ტექნიკური ინტერვიუსთვის და როგორ აღწეროთ იგი?

234

როგორ გამოვლინოთ ვიზუალურად ან ალგორითმულად, რომ ელემენტი უნიკალურია Map მონაცემთა სტრუქტურაში?

Junior — Middle
233

რამდენი ოპერაციის რაოდენობის მაჩვენებელი წამში მონაცემების წაკითხვისას მიაღწიეთ ან გაანალიზეთ?

Middle — Middle+
231

რატომ არის საჭირო ორი if შემოწმება (ხაზზე 79 და ხაზზე, სადაც len(buf)==MaxItems), ერთი არა?

231

// N узундугуна эки бүтүн сан массивдери үчүн, // 1ден Nге чейин бардык K үчүн, K узундуктагы алдыңкы бөлүктөрдөгү жалпы сандар санын эсептеңиз. // Массивдеги сандар кайталанышы мүмкүн, кесилиштер көбөйтүүлөрдү эске албастан эсептелет. // A массивинин K узундуктагы алдыңкы бөлүгү — бул массивдин биринчи K элементтери // A [1, 1] => [1], [1, 1] // B [1, 1] => [1], [1, 1] // R [1, 1] // [1, 2, 5] => [1], [1, 2], [1, 2, 5] // [1, 5, 4] => [1], [1, 5], [1, 5, 4] // [1, 1, 2]

230

რამდენი მოთხოვნის მაჩვენებელი მიაღწია მონაცემების ჩაწერის დროს?

Junior — Middle
230

[სახელი] მიუთითა: 20-ე ხაზზე uniq არ შეიცავს უნიკალური სიმბოლოების რაოდენობას, არამედ რაღაც სხვა. რა არის ეს?

229

// ორი სორტირებული უწყვეტი მთელი რიცხვების სერიაა მოცემული. // საჭიროა დაბრუნდეს პირველი სერიის ყველა ის ელემენტი, რომელიც მეორე სერიისთვის არ არის. // 0 <= N <= 10^6 // -10^9 <= a[i] <= 10^9 // [1] // [2, 3, 4, 5, 6] // [1] // [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...] // [1] // [2, 3, 4, 5, 6, 7, 8] func filter(first []int, second []int) []int { res := make([]int, 0, len(first)) i, j := 0, 0 for i < len(first) && j < len(second) { if first[i] < second[j] { result = append(result, first[i]) i++ } else if first[i] > second[j] { j++ } else { i++ j++ } } for i < len(first) { result = append(result, first[i]) i++ } return result }

226

როგორ გადავიტანოთ ფანჯარა სლაიდინგ ვინდოუს ალგორითმში?

226
/11