რა პროგრამირების ენებს იყენებთ Go-ს გარდა?
Golang
ახლა მუშაობთ თუ არა, და რა ფორმატში: ოფისი, ჰიბრიდი, დისტანციური?
/* අපට මූලාශ්රයකින් දත්ත කිසියම් පරිභෝජකයකුට මාරු කළ යුතුය. මේදී මූලාශ්රය කුඩා කට්ටලවලින් (~ දස ගණනක් වාර්තා) දත්ත ලබා දී ඇති අතර, පරිභෝජකයා විශාල බචක සමඟ වැඩ කිරීම වඩාත් ප්රයෝජනවත් වේ. සත්ය උදාහරණයක් - 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 }
რა მაჩვენებლებს იყენებდით თქვენი მუშაობის შეფასებისთვის ბოლო პროექტში?
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 }
""" සිනමාහලේ ස්ථාන එක පේළියක් ලෙස පිහිටා ඇත. නව පැමිණෙන නරඹන්නෙකු ස්ථානයක් තෝරයි, සියල්ලන්ගෙන් දුරස්ව සිටීමට. එනම්, එම ස්ථානය, ඒකට වාසස්ථානයට ඉතා ආසන්න නරඹන්නෙකුට ඇති දුර අධිකම විය යුතුය. සෑම විටම හිස් ස්ථාන තිබෙන බව සහ අවම වශයෙන් එක නරඹන්නෙක් ඉඳගෙන ඇති බව සහතික වේ. දී ඇති ස්ථාන මාලාව (සෙරෝ සහ වාසියන් අඩංගු අරේ) මත පදනම්ව, තෝරාගත් ස්ථානයෙන් ඒකට වාසස්ථානයට දුර (සෙරෝ සහ වාසියන් අතර ඇති පළවෙනි ගණන) ආපසු ලබා දෙන ක්රියාවලියක් ලියන්න. [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 { }
/* * მთლიანი მთელი რიცხვების მასივი და X რიცხვი მოცემულია, * საჭიროა იპოვოთ ყველაზე გრძელი არასრული ქვედაწილი, რომლის მინიმუმიც X-ია. * დააბრუნეთ ამ ქვედაწილის სიგრძე ან -1 თუ ასეთი არ არსებობს. */
""" კინოთერის ადგილები ერთ რიგშია განლაგებული. ახალი მოსული მაყურებელი არჩევს ადგილს, მოსახერხებლად მაქსიმალურად მოშორებით სხვა მაყურებლებს, რიგში. ანუ, ადგილიდან, სადაც ის დაჯდება, ყველაზე ახლოს მყოფ მაყურებელთან მანძილი უნდა იყოს მაქსიმალური. გაიგება, რომ ყოველთვის არსებობს თავისუფალი ადგილები და უკვე დაჯდა მინიმუმ ერთი მაყურებელი. დაწერეთ ფუნქცია, რომელიც მოცემული ადგილების რიგიდან (ნოლებისა და ერთების მასივი) დააბრუნებს მანძილს (სკამებს შორის სვლების რაოდენობას) ადგილიდან ყველაზე ახლოს მყოფ მაყურებელამდე. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """
თქვენი გამოცდილება რა არის ავტორიზაციის და ავტორიზაციის სისტემების დანერგვაში და კონფიგურაციაში?
რა განსხვავებაა L4 და L7 ტვირთის გამანაწილებლის შორის?
როგორ განისაზღვრება Map მონაცემთა სტრუქტურაში გასაღებით ელემენტის დამატების ოპერაციის შესრულების დრო?
რომელი პროექტი უნდა ავირჩიოთ ტექნიკური ინტერვიუსთვის და როგორ აღწეროთ იგი?
როგორ გამოვლინოთ ვიზუალურად ან ალგორითმულად, რომ ელემენტი უნიკალურია Map მონაცემთა სტრუქტურაში?
რამდენი ოპერაციის რაოდენობის მაჩვენებელი წამში მონაცემების წაკითხვისას მიაღწიეთ ან გაანალიზეთ?
რატომ არის საჭირო ორი if შემოწმება (ხაზზე 79 და ხაზზე, სადაც len(buf)==MaxItems), ერთი არა?
// 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]
რამდენი მოთხოვნის მაჩვენებელი მიაღწია მონაცემების ჩაწერის დროს?
[სახელი] მიუთითა: 20-ე ხაზზე uniq არ შეიცავს უნიკალური სიმბოლოების რაოდენობას, არამედ რაღაც სხვა. რა არის ეს?
// ორი სორტირებული უწყვეტი მთელი რიცხვების სერიაა მოცემული. // საჭიროა დაბრუნდეს პირველი სერიის ყველა ის ელემენტი, რომელიც მეორე სერიისთვის არ არის. // 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 }
როგორ გადავიტანოთ ფანჯარა სლაიდინგ ვინდოუს ალგორითმში?