對於乙個字串,請設計乙個高效演算法,找到第一次重複出現的字元。
給定乙個字串(不一定全為字母)a及它的長度n。請返回第乙個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。
測試樣例:
"qywyer23tdd",11返回:y
/*** 與劍指offer面試題中第35類似。但是有區別,那個是求第乙個指只出現一次的字元,但是這個題目是求第一次重複的字元。
* 求:第乙個指只出現一次的字元。遍歷兩次字串,第一次遍歷是把每個字元都儲存到hashmap中,對應的值是出現的次數。
* 第二次遍歷則是找出出現第一次的字元。
* 而本體求第一次重複的字元,應該是只需遍歷一遍字串,遍歷的過程中判斷當前遇到的字元之前是否出現過,如果出現過則返回,
* 否則繼續讀下面的字元。
* 如kfdaaak的第乙個出現重複的字元是a而不是k。
*/public char findfirstrepeat(string a, int n) {
hashmapmap = new hashmap();
char c = 0 ;
for(int i=0;i
2015 去哪兒校招 二分查詢
對於乙個有序陣列,我們通常採用二分查詢的方式來定位某一元素,請編寫二分查詢的演算法,在陣列中查詢指定元素。給定乙個整數陣列a及它的大小n,同時給定要查詢的元素val,請返回它在陣列中的位置 從0開始 若不存在該元素,返回 1。若該元素出現多次,請返回第一次出現的位置。測試樣例 1,3,5,7,9 5...
2018 校招 字串距離
題目描述 給出兩個相同長度的由字元 a 和 b 構成的字串,定義它們的距離為對應位置不同的字元的數量。如串 aab 與串 aba 的距離為 2 串 ba 與串 aa 的距離為 1 串 baa 和串 baa 的距離為 0。下面給出兩個字串 s 與 t,其中 s 的長度不小於 t 的長度。我們用 s 代...
2018網易校招 字串碎片
乙個由小寫字母組成的字串可以看成一些同一字母的最大碎片組成的。例如,aaabbaaac 是由下面碎片組成的 aaa bb c 牛牛現在給定乙個字串,請你幫助計算這個字串的所有碎片的平均長度是多少。輸入描述 輸入包括乙個字串s,字串s的長度length 1 length 50 s只含小寫字母 a z ...