面試遇到的演算法題1

2021-08-21 00:25:32 字數 1024 閱讀 4151

1. 兩個整數求和

string a = "893333.....3333";

string b = "349......999";

求 a + b;

由於數字太長,只能存在string 裡,不能整體轉成int/long來加,只能一位一位的轉成int來加,注意進製。

用乙個for迴圈按每一位做加法,最後輸出到乙個string裡。

/** *  如何將char型別的數字轉換成int型的數字

*  stringbuffer 追加時,可以 在前面 追加嗎

* @param a

* @param b

* @return

*/public static string sumlargeint(string a,string b)else

if(t2>=0)else

system.out.println(i11 + "   " + i22);

int temp = i11 + i22 + shi;

if(temp>=10)else

}//當時沒有考慮到這種情況 兩個數字數相等的時候, 在進一位沒有考慮到

if(shi>0)

return sb.tostring();

}2. 乙個字串去重,輸出結果保持順序。

舉例:輸入 string a = "abccc";

輸出 deduplicate(a) = "abc";

輸入 string a = "abbbcdeffffgacde";

輸出 deduplicate(a) = "abcdefg";

/** * 用 linkedhashmap 對字串去重

* @param str

* @return

*/private static string test(string str) ;

}setkeyset = maps.keyset();

for (object string : keyset)

return sb.tostring();

}

面試 面試中遇到的演算法題

概念平面內兩條線段位置關係的判定在很多領域都有著廣泛的應用,比如遊戲 cad 圖形處理等,而兩線段交點的求解又是該演算法中重要的一環。本文將盡可能用通俗的語言詳細的描述一種主流且效能較高的判定演算法。為方便計算,對座標點的大小比較作如下定義 x座標較大的點為大,x座標相等但y座標較大的為大,x與y都...

面試遇到的一道演算法題

今天面試摩拜單車遇到一道演算法題,題目如下 給定乙個正整數範圍 m,n 返回乙個陣列,該陣列是每個正整數轉換為相應二進位制之後包含1的個數 示例 給定 1,5 1的二進位制位1,二進位制表示中包含位1的個數字1,2的二進位制位10,二進位制表示中包含位1的個數字1,3的二進位制為11,二進位制表示中...

騰訊Android面試遇到的簡單演算法題

有n級台階,一次可以跳1 2 n級,請問有多少種跳法?假設n級台階我們需要調j次,由題可知,我們跳上n級台階可以分成1 2 n次完成,一次可以輕易得出,n 1時,j 1 n 2時j 2 當n 3時,如果第一次跳一步,那麼就有n 2時那麼多種可能,記為j31 2,如果第一次跳兩步,那麼就有n 1種可能...