Job Interview Challenges [closed]

3

L'altro giorno, nella nostra classe PHP, il nostro insegnante ci ha dato una sfida usata da un suo amico in colloqui di lavoro. Funziona in ogni linguaggio di programmazione, quindi non è limitato a PHP. Ha detto che il suo amico usa questo "indovinello" per eliminare le persone che non riescono a pensare a una risposta veloce quando si tratta di sfide logiche. Le persone che non lo risolvono non otterranno un lavoro, naturalmente.

L'enigma è il seguente:

    $a = 3;
    $b = 7;

    echo "a = $a";        // has to become 7
    echo "<br />";
    echo "b = $b";        // has to become 3

In pratica devi cambiare il contenuto di entrambe le variabili senza fare cose di cattivo gusto come $b = $a + 4 . non puoi neanche usare una variabile temporanea! Ho lottato con questo, devo ammetterlo; Ero come "oooh sì" quando finalmente abbiamo ottenuto la risposta.

Non voglio rovinarlo per nessuno, quindi, invece di pubblicare la soluzione, metto un link .

Ora, per quanto riguarda la mia domanda. Mi stavo chiedendo se ci sono altri indovinelli come questi là fuori, che le persone (che sei tu, SO) usano nelle interviste di lavoro, ecc. Forse anche un po 'più difficile di questo. Il mio obiettivo è allenare un po 'il mio pensiero logico e migliorare la risoluzione di problemi come questo. Forse ci sono libri o siti web là fuori dedicati a cose come questa?

    
posta Joris Ooms 21.03.2011 - 12:30
fonte

5 risposte

5

Per prima cosa sono totalmente d'accordo con il commento di Will.

In secondo luogo per rispondere alla tua domanda guarda questo sito per domande simili

Anche le seguenti due domande dei programmatori possono darti abbastanza da studiare.

risposta data 21.03.2011 - 14:11
fonte
9

Questo non è un "indovinello", è solo un algoritmo obsoleto (l'algoritmo XOR swap ).

Il problema con la domanda (e altri simili) è che l'unica cosa che può dire a un intervistatore è se il programmatore abbia o meno memorizzato un po 'di curiosità sulla programmazione. Come intervistatore, ho scelto di non sprecare il tempo del mio o dell'intervistato con tali assurdità. Ci sono cose molto più importanti da fare con quel tempo.

    
risposta data 15.04.2011 - 17:40
fonte
4

Potresti farlo anche con uno scambio XOR:

$a = $a ^ $b;
$b = $a ^ $b;
$a = $a ^ $b;

Tecnicamente potrebbe essere più veloce dell'aggiunta / sottrazione, ma in realtà sta dividendo i capelli.

    
risposta data 15.04.2011 - 14:21
fonte
3

In realtà questo NON funziona su nessuna lingua. Funziona solo per un numero molto limitato di lingue. Quindi questa è solo una cosa correlata al PHP (in realtà non si può pensare a nessun'altra lingua dove questo funziona).

Per rispondere alla tua missione: ci sono molti "indovinelli" come questo, ma il punto sulle interviste non risolve sempre l'enigma. Se riesci a spiegare le tue idee, potresti comunque ottenere il lavoro (anche se la tua risposta non è corretta)

Tuttavia non ho mai scoperto un indovinello due volte, quindi la mia ipotesi è che ogni azienda crei i propri puzzle adatti alle proprie esigenze (compresa la lingua, ecc.).

    
risposta data 21.03.2011 - 13:51
fonte
1

Mi chiedo quale sia stata la risposta dell'insegnante di Joris.

Il problema più grande è che il trucco è oscuro e chiunque lo abbia usato in un ambiente di programmazione professionale aggiunge davvero un codice difficile da mantenere. Questo è un grosso problema per un luogo professionale, dovunque abbia codebase molto grandi abbia bisogno di codice facile da capire, in modo che i futuri lavoratori possano vedere cosa sta facendo senza spendere un gran numero di codice tempo groking, o peggio - non capirlo e fare un errore .

Se hai bisogno di un esempio, guarda la Storia di Mel . Codice molto elaborato, trucco pulito, programmatore professionale inutile. Si potrebbe dire che l'unica ragione per cui è accettabile è che si trattava di un ambiente molto ristretto in cui tali trucchi hanno fatto la differenza. Nel 99,999% degli ambienti moderni questo sarebbe contrassegnato come richiedendo la rilavorazione.

    
risposta data 17.04.2015 - 13:21
fonte

Leggi altre domande sui tag