close

最近面試常常遇到一種問題

就是兩個參數交換,但不能新增任何方法或參數或class或儲存體的

參數為型態任意,如何換呢?

答案

若型態為int

那就有兩種方式,加減法或xor方法

加減法

i = 10, j =20;

i = i + j - ( j = i );

xor

i = i  ^ j  ^ ( j = i )

 

若型態為String

一樣的加減法概念

把字串相加後再移除重複的字串

String a = "aa" , b = "bb";

sI = (sI + sJ).replaceAll((sJ = sI), "") ; 

不過字串的缺點是 若 兩個參數中有相同字元,那就悲劇了

 

04/30 10:13 pm

朋友提出的方法,我讓我想到一個方式

加入中斷點字串,如 "\n" , "\r", "&"等

使用split 若資料切割或,charAt(spcail_char), 等方式找出中斷index, 再把想要的取出來就好了

 

 

arrow
arrow
    文章標籤
    java 演算法設計
    全站熱搜

    Owen Chen 發表在 痞客邦 留言(0) 人氣()