Jump to content

Raul

Active Members
  • Posts

    69
  • Joined

  • Last visited

Everything posted by Raul

  1. Testat, este in regula, a trecut toate testcase-urile, kudos! Testat, este in regula, a trecut toate testcase-urile, kudos! Solutia mea (Golang) este urmatoarea: var hes = map[int32]string{1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine", 10: "ten", 11: "eleven", 12: "twelve", 13: "thirteen", 14: "fourteen", 15: "quarter", 16: "sixteen", 17: "seventeen", 18: "eighteen", 19: "nineteen", 20: "twenty", 21: "twenty one", 22: "twenty two", 23: "twenty three", 24: "twenty four", 25: "twenty five", 26: "twenty six", 27: "twenty seven", 28: "twenty eight", 29: "twenty nine", 30: "half"} func theClock(h int32, m int32) string { var out string if m == 0 { out = hes[h] + " o' clock" } else if m == 1 { out = hes[m] + " minute past " + hes[h] } else if m == 15 || m == 30 { out = hes[m] + " past " + hes[h] } else if m < 30 { out = hes[m] + " minutes past " + hes[h] } else if m == 45 { out = hes[60-m] + " to " + hes[h+1] } else { out = hes[60-m] + " minutes to " + hes[h+1] } return out } * Problema este adaptata de la ceva asemanator gasit pe HackerRank
  2. Twenty minutes to one. Ai grija la constrangeri.
  3. Rezolvarea este partial corecta, deoarece trebuie tradus complet in text, la tine ramanand numerele netraduse. Pe langa asta, nu respecti, in totalitate, constrangerile. Ce sa-ti spun, iti recomand sa citesti si sa intelegeti tot ce zice aici (legat de prima dilema), si ce zice aici (legat de a doua dilema). Evident, astea sunt niste lucruri foarte basic, ar trebui sa le aprofundezi, daca chiar te intereseaza. Dupa aia, mai uita-te pe aici.
  4. Propun o noua problema, una care poate parea putin mai ciudata, dar este destul de interesanta. Dat orice interval orar (ora de pe ceas, efectiv), acesta se poate converti in cuvinte din limbaj natural, sub forma urmatoare: Pentru o valoare a minutului data, asta inseamna (notat cu m) cand m = 0, atunci se foloseste o' clock cand 1 <= m <= 30, atunci se foloseste past cand m > 30, atunci se foloseste to Se cere scrierea unei functii care returneaza timpul dat sub forma de text, in limbaj natural, respectand regulile de mai sus. Ca input, se dau doua valori intregi si naturale, notam h si m, unde h reprezinta ora, iar m reprezinta minutul. Constrangeri 1 <= h <= 12 0 <= m < 60 Exemple Pentru h = 5 si m = 47, rezulta "thirteen minutes to six" Pentru h = 3 si m = 00, rezulta "three o' clock" Pentru h = 7 si m = 15, rezulta "quarter past seven" Limbajul care va fi folosit este la alegere libera. Sunt acceptate toate solutiile, indiferent de complexitatea timp, dar trebuie incercat sa se rezolve in O(1). O solutie personala va fi pusa ulterior. Spor!
  5. Raul

    Intrebare grea

    Intr-adevar, o intrebare extrem de dificila, care necesita extrem de multa gandire si precizie.
  6. Testat, este in regula, a trecut toate testcase-urile, kudos!
  7. Te ajuta @aelius, el este alesul!
  8. Testat, este in regula, a trecut toate testcase-urile, kudos! Solutia mea (Golang) este urmatoarea: func solve(B []int32) int { counter, sum, ok := 0, 0, true for _, v := range B { sum += v if sum % 2 == 1 { ok = false counter += 2 continue } ok = true } if !ok { return -1 } return counter } * Problema este adaptata de la ceva asemanator gasit pe HackerRank
  9. Testat, este in regula, a trecut toate testcase-urile, kudos! Sunt binevenite si alte propuneri, in continuare!
  10. Esti destul de aproape, dar, din pacate, solutia nu este complet valida. O sa pun aici niste testcase-uri pe care da fail. Link: https://pastebin.com/iZwL3Gjn
  11. Propun o noua problema care necesita o logica buna. Se da un array de numere intregi si pozitive. Singura alterare permisa a elementelor din array este incrementarea acestora, strict cu valoarea 1. Toate numerele din array trebuie sa devina pare, intr-un final, cu un numar minim de incrementari, dar respectand regula urmatoare: atunci cand se face o incrementare pe pozitia i din array, in mod obligatoriu se face incrementare fie pe pozitia i-1, fie pe pozitia i+1. Se cere returnarea numarului minim de incrementari, astfel incat, in final, toate numerele din array sa fie pare. In cazul in care input-ul nu este valid, deci nu se poate ajunge la un rezultat corect, se va returna -1. Constrangeri: Se considera N a fi numarul de elemente din array, iar 2 <= N <= 1000 1 <= V[i] <= 10, iar 0 <= i <= N-1 Exemplu #1: Se da V = [4,5,6,7]. Se face incrementare, la primul pas, pe i = 2 si respectiv i = 3, deci va rezulta array-ul V = [4,5,7,8]. Acum, la pasul urmator, se va face incrementare pe i = 1 si respectiv i = 2, deci va rezulta array-ul V = [4,6,8,8]. In final, se intoarce numarul de incrementari facute, mai exact 4. Exemplu #2: Se da V = [2,3,4,5,6]. Se face incrementare, la primul pas, pe i = 1 si respectiv i = 2, deci va rezulta array-ul V = [2,4,5,5,6]. Acum, la pasul urmator, se va face incrementare pe i = 2 si respectiv i = 3, deci va rezulta array-ul V = [2,4,6,6,6]. In final, se intoarce numarul de incrementari facute, mai exact 4. Exemplu #3: Se da V = [1,2]. Oricum s-ar face incrementare, una dintre valori va fi mereu para, iar cealalta impara. Prin urmare, nu se poate ajunge la un rezultat corect, deci se intoarce -1. Limbajul care va fi folosit este la alegere libera. Sunt acceptate toate solutiile, indiferent de complexitatea timp, dar trebuie incercat sa se rezolve in maxim O(N). O solutie personala va fi pusa ulterior. Spor!
  12. Mi-am dat seama ca nu se intelegea foarte clar treaba asta, de aceea am si modificat, acum sigur nu mai sunt dileme.
  13. Exemplul dat cu 4879 este gresit, nefiind un numar Kaprekar (pe baza definitiei din textul problemei), dupa cum a demonstrat si Andruk. Bazeaza-te pe definita data in textul problemei, nu pe altceva. Am modificat acum ca sa fie mai clar, acum sigur nu mai sunt dileme. Imi pare rau pentru confuzia creata! Rezolvarea ta nu este corecta, ai 3/7 testcase-uri care pica. In principal, problema e ca nu validezi corect si apar numere care nu sunt Kaprekar (evident, pe baza definitiei din textul problemei). Exemplu: Input: p = 1000, q = 10000 Output asteptat: 2223 2728 4950 5050 7272 7777 9999 Output-ul tau: 2223 2728 4879 4950 5050 5292 7272 7777 9999 LE: Solutia mea (Golang) este urmatoarea: func kaprekar(p, q int64) { for i := p; i <= q; i++ { x := i * i xS := len(fmt.Sprintf("%d", x)) if xS % 2 == 1 { xS++ } d := int64(math.Pow(10, float64(xS/2))) l, r := x / d, x % d if i == l + r { fmt.Printf("%d ", i) } } } * Problema este adaptata de la ceva asemanator gasit pe HackerRank
  14. Am testat, solutia este valida, kudos! Sunt binevenite si alte propuneri, in continuare.
  15. De data aceasta, propun un challenge care nu necesita prea multe cunostinte in structuri de date, ci o logica buna. O definitie necesara: In matematica, un numar Kaprekar, pentru o baza data, este un numar intreg si pozitiv, al carui valoare ridicata la patrat, in aceeasi baza, poate fi impartita in doua bucati, iar suma numerelor din aceste doua bucati rezulta efectiv in numarul original. Numarul se imparte in doua parti egale (sau +1 la una dintre parti, atunci cand este un numar impar de cifre), nu se fac "variante". Exemplu: 45 este un numar care respecta regula (numar Kaprekar), deoarece 45² = 2025 si 20+25 = 45. Alte exemple: 9 respecta regula, deoarece 9² = 81 si 8+1 = 9; 297 respecta regula, deoarece 297² = 88209 si 88 + 209 = 297. ATENTIE: Aceasta nu reprezinta definitia oficiala in totalitate, este o variatie, problema trebuie rezolvata pe baza la ce se spune aici. A se observa ca in ultimul exemplu, numarul ridicat la patrat se imparte intr-o bucata de lungime doi si celalalta de lungime trei, deoarece are un numar impar de cifre, fata de cazurile in care ar fi un numar par de cifre. De asemenea, trebuie avut grija, daca una dintre cele doua bucati incepe cu un 0. Se dau doua numere intregi, p si q, si se cere sa se afiseze toate numerele Kaprekar din respectivul interval (inclusiv p si q); 0 < p < q < 100000 Exemplu: p = 1, q = 100; se va afisa "1 9 45 55 99", acestea fiind numerele care respecta regula. Limbajul care va fi folosit este la alegere libera. Solutiile cu complexitate timp mai mare decat O(N) sunt respinse. O solutie personala va fi pusa ulterior. Spor!
  16. Ambele solutii sunt ok. Nu, nu prea ai ce sa scoti mai rapid de atat, pentru ca trebuie sa treci, totusi, prin toate nodurile arborelui, rezultand, in mod evident, intr-o complexitate timp O(N). Solutia mea (Golang) este urmatoarea (foarte asemenatoare cu ce a facut Gecko): func helper(root *TreeNode, L, R int, sum *int) { if root == nil { return } else if root.Val >= L && root.Val <= R { *sum += root.Val } helper(root.Left, L, R, sum) helper(root.Right, L, R, sum) } func sum(root *TreeNode, L int, R int) int { var sum int helper(root, L, R, &sum) return sum } * Problema este luata si tradusa de pe Leetcode
  17. Data o structura de date de tip arbore binar de cautare (BST), se cere calcularea sumei valorilor de pe toate nodurile unde valoarea este cuprinsa intre doua numere L si R (inclusiv) si returnarea acesteia. Se garanteaza ca toate valorile din arbore sunt unice. * Numarul maxim de noduri din arbore este de 10^4 * Suma calculata si returnata se garanteaza a fi mai mica decat 2^31 EXEMPLU Input: arbore = [10,5,15,3,7,null,18], L = 7, R = 15 Output: 32 (10+15+7) Limbajul care va fi folosit este la alegere libera. Solutiile cu complexitate timp mai mare decat O(N) sunt respinse. O solutie personala va fi pusa ulterior. Spor!
  18. Raul

    Ajutor SQL

    Acea bucata de "dummy data" are o inteligenta mai mare ca a ta.
  19. Viata are prioritate, spune nu alcoolului la volan!
  20. Ce logica e asta, baiatul meu? Si daca iti punem streangul la dispozitie, inseamna ca trebuie sa il si folosesti? Pff...
  21. Raul

    Buna

    Ala bala portocala Cine mi-a mancat banana
  22. Imi hackuiesti si mie un ID de Mess?
  23. Raul

    Black Friday

    Casti din gama premium, ceva care chiar merita, redus pretul pe bune. Produs: https://www.flanco.ro/produs/121912 Review: https://www.youtube.com/watch?v=2FV8UEOzQZs
  24. Raul

    RSP - BACK

    SA TE IAU PE BASTON IEFTIN
  25. Raul

    RSP - BACK

    DA, RST TREBUIE SA FIE O UNICA SURSA DE BOGATIE IN ALE HACKINGULUI INTERNATIONAL AN PLM DE INCULT.
×
×
  • Create New...