2013-08-21 7 views
7

Ich mag 1 Frage teilen, die die meiste Zeit in Interviews gefragt wird, und ich war nicht in der Lage, diese Frage zu beantworten, e, aber schließlich fand ich die Antwort:Swap zwei Variablen Wert ohne dritten Variable in PHP

Wie man 2 variable Werte ohne Verwendung der 3. Variable vertauscht ??

+1

@ShankarDamodaran Ups sorry, ich bin mir dessen nicht bewusst, ich dachte, es war nicht in StackOverflow, deshalb habe ich es geteilt! – Jay

+0

Kein Problem. Ich bin froh, dass du die Lösung gefunden hast. –

+0

Ich hatte auch diese Art von Interview, sie sind sehr dumm IMO, wie können sie beurteilen, wie gut Sie in Ihrer Gegend mit solchen trivialen Dingen sind? – itsjavi

Antwort

32

Diese Methode wird für jeden Variablentyp arbeiten:

$a = 5; 
$b = 6; 
list($a, $b) = array($b, $a); 
print $a . ',' . $b; 

Ausgang:

6,5 

Eine weitere einfache Möglichkeit (die nur für Zahlen arbeitet, keine Strings/Arrays/etc) ist

$a = $a + $b; // 5 + 6 = 11 
$b = $a - $b; // 11 - 6 = 5 
$a = $a - $b; // 11 - 5 = 6 
print $a . ',' . $b; 

Ausgabe:

6,5 
+2

$ b = $ a + $ b - ($ a = $ b); –

+0

Toller Job jay .. !! – Ritesh

+0

@mjolnic sind Variablen und Objekte unterschiedlich oder gleich? Hier handelt es sich um Variablen, aber nicht um Objekte. –

8

Sicher wollen Sie die XOR swap algorithm? Zumindest für numerische Variablen.

Herkömmliches Tauschen erfordert die Verwendung eines temporären Speichers Variable. Mit dem XOR-Swap-Algorithmus wird jedoch kein temporärer Speicher benötigt. Der Algorithmus ist wie folgt:

X: = X XOR Y

Y: = X XOR Y

X: = X XOR Y

Obwohl ich habe es nie benutzt gesehen in realen Szenarien (außer Assembler-Arbeit)

+0

ist es zu schwierig zu implementieren, da wir einen einfacheren Ansatz für die einfache Operation, wie Variable Swapping wollen. – Raptor

+3

Wie schwierig ist $ a xor $ b? –

+0

Downvoted warum? –