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...