Mirki i Mirabelki, chciałbym porównać dwa *potężne* jsony A i B. Interesuje mnie tylko stwierdzenie czy A różny od B, takie że - jeśli wielkościowo: B > A to nie OK. Jeśli A >= B to OK, pod warunkiem że część wspólna A i B jest identyczna.

Nie bardzo mogę je porównywać przy pomocy jq (czemu? O tym poniżej.), czy cmp (ze względu na zamykające klamry). Jako że te jsony formatowane są
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Na piąteczek zadanie ode mnie:

Kojarzycie pewnie program MS Paint. W zadaniu chodzi o zaimplementowanie przyborników "wypełnij kolorem" oraz "pobierz kolor".

Dana jest macierz liczb naturalnych m x n, która reprezentuje nasz obszar roboczy a liczby reprezentują różne kolory.
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SuppressWarnings: z intuicji wydaje mi się, że optymalnie ten case byłoby obskoczyć przy pomocy kopca list, w ten sposób, żeby na szczycie była lista z najmniejszą pierwszą liczbą (najmniejsza w ogóle). Po wyciągnięciu tej liczby, wyciągamy listę, która ją zawiera i wkładamy ją z powrotem na kopiec. Ale skrzywienie Pythonowe mówi mi, że koszt z takiego skomplikowania będzie zbyt duży jak na zysk, który uzyskamy z takiej optymalizacji ;)
  • Odpowiedz
Zadanie od Amazon:

RLE jest prostą metodą kodowania ciągów znaków. Każdy maksymalny podciąg (w sensie substring) tekstu wejściowego złożony wyłącznie z k znaków c jest kodowany jako "kc".
np. "AAAABBBCCDAA" zakodowany RLE to "4A3B2C1D2A"

Zaimplementuj kodowanie i dekodowanie RLE. Możesz założyć, że napis do zakodowania będzie złożony wyłącznie z małych i dużych liter alfabetu. Możesz też założyć, że napis do zdekodowania jest poprawnym kodowaniem RLE.
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Lajcik na niedzielę od FB:

Dany jest napis złożony wyłącznie z nawiasów [] {} (). Napisz funkcję sprawdzającą czy nawiasowanie w tekście jest poprawne.

Np. dla
"([])[]({})" -> true
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zadanie od Facebooka:

Dana jest tablica liczb, napisz funkcję, która ustala czy tablica może stać się nierosnąca poprzez modyfikację jednego elementu.

np.
[7, 5, 10] -> TAK np. poprzez modyfikację 10 na 5
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zadanie od Jane Street, które można uznać za bardzo trudne jak na to co było do tej pory.

Mając daną tabelę z kursem wymiany każdej waluty na każdą, sprawdź czy istnieje możliwość tzw. arbitrażu tj. cyklu wymian walut, w którym po wymianie posiadamy więcej tej samej waluty niż na początku.

Możesz założyć, że nie ma opłat transakcyjnych oraz możesz wymieniać niecałkowite wartości.

#dailycodingproblem #programowanie
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@NotABigFan: Te zadania nie maja nic wspolnego z mysleniem. Sprawdzaja tylko znajomosc algorytmow.

Na rozmowie wole np. takie zadanie

The King of a small country invites 1000 senators to his annual party. As a tradition, each senator brings the King a bottle of wine. Soon after, the Queen discovers that one of the senators is trying to assassinate the King by giving him a bottle of poisoned wine. Unfortunately, they
  • Odpowiedz
Dzisiaj trochę ambitniejsze zadanie od Facebooka.

Zaimplementuj wyrażenia regularne z następującymi specjalnymi znakami:
. (kropka) dopasowuje dowolny pojedynczy znak
x* (gwiazdka) dopasowuje zero lub więcej znaków x

Tj.
  • 28
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

pewnie trzeba pokombinować z substringami, startswith i endswith. Nie wydaje się bardzo skomplikowane, chociaż banalne tez nie jest.


@asunez: nie trzeba - to zadanie jest proste jeśli się wie (albo uczyło na studiach) co to są wyrażenia regularne i jak sie mają to automatów skończonych.
Ergo: trzeba skonstruować automat skończony
  • Odpowiedz
@NotABigFan: Klasyczna implementacja kolejki przez dwa stosy: jeden wejściowy, drugi wyjściowy. Jak wyjściowy jest pusty, to kopiujesz wszystko z wejściowego na wyjściowy. Amortyzowany koszt enqueue i dequeue to O(1).
  • Odpowiedz
Zadanie od Twittera:

Zaimplementuj system autouzupełniania tekstu. To jest mając dany napis s i zbiór wszystkich możliwych słów kluczowych, zwróć wszystkie słowa kluczowe które mają s jako swój prefiks.

np. dla s = "pi" i zbioru słów: {"pies", "kot", "kotek", "piesek"} poprawną odpowiedzią będzie ["pies", "piesek"].

Postaraj
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj lajcik od Dropbox:

Co wypisze poniższy kawałek kodu w #python ? Jak możemy go naprawić, żeby funkcja lambda zachowywała się tak jak oczekujemy?

functions = []
for i in range(10):
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj zadanie od Facebooka:

Dana jest tablica liczb reprezentujących cenę akcji pewnej firmy w kolejności chronologicznej. Napisz funkcję która oblicza maksymalny możliwy zysk pochodzący z kupna i sprzedaży jednej akcji. Musisz kupić zanim sprzedasz.

np. dla [9, 11, 8, 5, 7, 10] właściwą odpowiedzią jest 5, kupując za 5 i sprzedając za 10.

Czas
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj w szabas to dam coś prostszego niby zadanie z Facebooka ale tak naprawdę stare jak świat. Może ktoś nie znał ( ͡° ͜ʖ ͡°)

Mając dany strumień elementów zbyt wielki aby przechowywać go w pamięci, wybierz losowy element ze strumienia z jednakowym prawdopodobieństwem dla wszystkich elementów ze strumienia.

#dailycodingproblem #programowanie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dziś zadanie od Snapchat.

Mając podaną tablicę przedziałów czasowych (początek, koniec), w których odbywają się wykłady, określ minimalną liczbę sal potrzebnych do przeprowadzenia wszystkich wykładów.

np. dla [(30, 75), (0, 50), (60, 150)] właściwa odpowiedź to 2.

#dailycodingproblem #programowanie
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wczorajszy #dailycodingproblem pozostał nietknięty. Dzisiaj wrzucę coś stricte od siebie co mogłoby się pojawić gdzieś na interview w formie rozgrzewki.

Napisz funkcję przesuwającą cyklicznie tablicę xs w prawo o k pozycji. Funkcja ma działać w miejscu (pamięć O(1)) i czasie O(n).

np. xs=[1, 2, 3, 4, 5], k=2 -> [4, 5, 1, 2, 3]
Jeżeli ktoś jeszcze nie wie czym jest przesunięcie cykliczne wyjaśniam to formalnie w poprzednim wpisie. Zachęcam jeszcze spróbować rozwiązać
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ptasigryp: jak ktoś nie ogarnia co swift robi to leci to tak:
wykonujemy 3 reversy w miejscu:
jeden dla indeksów od 0 do n-k-1
drugi dla indeksów od n-k do n-1
trzeci dla całej
  • Odpowiedz
Dzisiaj dość ciekawe zadanie od Amazon:

Dana jest posortowana tablica liczb całkowitych, która została przesunięta cyklicznie o niewiadomą liczbę pozycji. Zaproponuj szybszy niż liniowy algorytm wyszukiwania elementu w tej tablicy.

Dla uproszczenia można założyć, że tablica nie zawiera duplikatów, oraz, że była uprzednio posortowana rosnąco.

Przesunięciem
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@NotABigFan: Nie dawało mi spokoju to zadanie, no bo jak to tak od razu zaciągać mnożenie! Rozpisałem zatem dwie implementacje:

uint32_t f(uint32_t x, uint32_t y, uint32_t b)
{
return b * x + (1 - b) *
  • Odpowiedz
Dzisiaj zadanie od Amazon:

Dana jest liczba k i napis s. Znajdź długość najdłuższego podłańcucha s, który składa się z najwyżej k różnych znaków.

np.:
dla s = "abcba", k = 2 wynikiem jest 3
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@NotABigFan: Na szybko (byle działało) wyszło mi coś takiego :) Jak znajdę chwilkę czasu, to napiszę to lepiej :) (musi się dać to wykonać tylko z jednym forem)

private static String getMaxSubstring(String text, int k) {
char[] str = text.toCharArray();
String s = "";
Set set =
  • Odpowiedz
@Frogof no ale zwykle w takich zadaniach jest a - z xd a przy słowniku też masz taką samą złożoność, ewentualnie ograniczoną przez n
Ale no dobra, w pewnych przypadkach słownik może zajmować mniej pamięci
  • Odpowiedz