去哪兒網 面試題 Java實現

2021-06-25 23:37:32 字數 3981 閱讀 4782

1、給定乙個字串,請寫出一段**找出這個字串中首先出現兩次的那個字元。

例如:字串為"qywyer23tdd",輸出為y。

public static void main(string args)

else

}}

2、寫一段**,嘗試在以下文字中搜尋並列印出包含單詞"your"(不區分大小寫)的句子,並按出現次序從高到低排序。

make yourself at home

none of your business

i will be more careful

how about going to be a move?

your life is your own affair

public static void main(string args)

sort(hashmap); }

//排序並降序輸出

public static void sort(hashmaphashmap)

});for(map.entrye : list) //遍歷list

}//統計每行字串中"your"出現次數

public static int getcount(string str,string sub)

return count;

}

3、string padstring(string string,int minlength,char padchar),就是在string前用padchar將string填充至minlength的長度,

如("7",3,'0')得到的結果是"007",("2012",3,'0')得到的結果是"2012"。minlength不能為負數。

public static void main(string args)		

public static string padstring(string string,int minlength,char padchar)

}return currentstring.tostring();

}

4、命令解析

對於命令:

-name jack -age 20 -address "hangzhou zheda road"

要變成
[-name jack, -age 20, -address, "hangzhou zheda road"]
命令由引數的值對組成,引數以-開頭,引數和值之間,值和值之間,都用空格隔開,雙引號之間的值當作乙個整體來處理。

所有引數和值只包括英文本母、數字、減號、雙引號。

public static void main(string args)		

public static string parse(string str)

}return sb.tostring();

}

5、dif(stirng str1,string str2)

輸出兩個字串中不同的字元,如果字元a在str1中出現,而沒有在str2中出現,則輸出-a;相反,則輸出+a。字串當中重複的字串不輸出。

abcde,bcde 輸出 -a

dabc,aabcef 輸出 +a,-d,+e,+f

abcdefe,aabcadef 輸出 +a,+a,-e

public static void main(string args)

//把26個英文本母對映為size為26的整型陣列flag,初始化為0,flag[0]對應a;若字母在str1中出現,相應flag[k]減一;若字母在str2中出現,相應flag[k]加一。

//最後根據flag[k]大小進行列印。

public static string dif(string str1,string str2)

}else if(flag[k] > 0)

}} if(sb.lastindexof(",") == sb.length()-1)

return sb.tostring();

}

6、實現乙個字串反轉,規則如下:

輸入乙個字串str,乙個分隔符delim,要求實現對分隔符之間的字元作反轉操作,但是其內部順序不變。

介面:string reversedelimited(string str,const char delim)

舉例:

reversedelimited(null, *) = null

reversedelimited("", *) = ""

reversedelimited("www.csdn.com", '.') = "com.csdn.www"

reversedelimited("www.csdn.com", '*') = "www.csdn.com"

實現:

public static void main(string args)		

public static string reversedelimited(string str,char delim)

//將陣列中元素倒序拷貝

for(int k = i;k >= 0;k--)

return sb.tostring();

}

7、實現字串去重

public static void main(string args)

//使用linkedhashset

public static string delrepetition(string str)

//使用list的contains方法

public static string delrepetition2(string str)

for(character c:list)

return sb.tostring();

} //雙迴圈

public static string delrepetition3(string str)

}} return sb.tostring();

}

8、實現乙個有max_size的cache系統,key為username,value為info,如果cache滿了,採用lru規則刪除最久沒有訪問的那個元素。

思路:本題考查使用linkedhashmap實現lru快取演算法,我們只需重寫linkedhashmap中的removeeldestentry方法即可。

public class yourlinkedhashmapextends linkedhashmap

//每次新增新的元素到集合中(即呼叫put和putall方法)後,會呼叫此方法,該方法若刪除最舊的元素,則會返回true;否則返回false。

//在linkedhashmap中,該方法的實現只有一條語句,即:return false; 因而hashmap中在新增元素時,是不會自己主動刪除元素的。

@override

public boolean removeeldestentry(map.entryeldest)

public static void main(string args) }

}

9、我們每天都會上網,訪問每個頁面,瀏覽器中會記錄使用者的訪問歷史,大家可以通過瀏覽器的前進、後退進行瀏覽歷史記錄,請定義合適的資料結構,實現操作訪問歷史功能的**,盡量高效。由於記憶體有限,歷史記錄只能儲存有限記錄max_num個,當記錄數目超過max_num個時,刪除最近未被使用的記錄。

功能模組必須包含3個基本函式:

參考部落格:

2023年去哪兒網Qunar面試題

1 自我介紹 2 問筆試試題 3 筆試題中有乙個程式要求置亂演算法,我看你寫的加密演算法 我寫的是凱撒加密演算法,就是移位 你知道哪些加密演算法?4 了解多執行緒 多程序嗎5 知道網路攻擊嗎?說一下你知道的網路攻防 6 用過linux吧,說一下你知道的linux命令 7 了解awk嗎 8 有的面試官...

去哪兒網筆試 面試

今天參加了去哪兒網春季實習生招聘的筆試,這也是讀研之後的第一次筆試。我做的是開發的題目,總體來講,筆試題目還是比較簡單的。考察的點涉及二分查詢 雜湊表的應用以及一些測試的基礎,具體題目就不提了。主要總結一下筆試之後的感想 總之,對自己讀研之後第一次筆試不滿意,也總結了一些經驗教訓。期待第一次面試,無...

去哪兒網筆試題分析

目錄 輸入n個int數,0,n 2 表示n 1個酒店的每晚 第 n 1 個元素是你擁有的錢。要求輸出,能住最少的天數,且錢必須剛好花完。若不存在匹配情況,則返回 1.輸入描述 輸入為一行。共n個整數,最後乙個數是擁有的錢數。以空格分隔。輸出描述 輸出能住的最小天數,不存在則輸出 1。輸入例子 100...