摘要:字符串簡(jiǎn)介內(nèi)置類型,不可理性,要更改的話考慮轉(zhuǎn),之類對(duì)來(lái)說(shuō),一個(gè)的范圍,位面試題總體分析和數(shù)組相關(guān),內(nèi)容廣泛概念理解字典序,哪個(gè)排在字典前面,哪個(gè)字典序就小簡(jiǎn)單操作插入刪除字符,旋轉(zhuǎn)規(guī)則判斷羅馬數(shù)字轉(zhuǎn)換,是否是合法的整數(shù)浮點(diǎn)數(shù)數(shù)字運(yùn)算套數(shù)加
字符串簡(jiǎn)介
String 內(nèi)置類型,不可理性,要更改的話考慮轉(zhuǎn)StringBuffer,StringBuilder,char[]之類
對(duì)java來(lái)說(shuō),一個(gè)char的范圍 [0,65535],16位
面試題總體分析
和數(shù)組相關(guān),內(nèi)容廣泛
概念理解:字典序,哪個(gè)排在字典前面,哪個(gè)字典序就小
簡(jiǎn)單操作: 插入、刪除字符,旋轉(zhuǎn)
規(guī)則判斷 羅馬數(shù)字轉(zhuǎn)換,是否是合法的整數(shù)、浮點(diǎn)數(shù)
數(shù)字運(yùn)算(套數(shù)加法、二進(jìn)制加法)
排序、交換(partition過(guò)程)
字符計(jì)數(shù)(hash): 變位詞
匹配(正則表達(dá)式、全串匹配、KMP、周期判斷)
動(dòng)態(tài)規(guī)劃(LCS、編輯距離、最長(zhǎng)回文子串)
搜索(單詞變換、排列組合)
例1 把一個(gè)0-1串進(jìn)行排序,可以交換任意兩個(gè)位置,問(wèn)最少交換的次數(shù)思路:快排partition 最左邊0和最右邊的1都可以不管
public int exchangeTimes(String s){ int answer = 0; for(int i = 0, j = s.length() - 1; i < j; i++, j--){ for(; i < j && s.charAt(i) == "0"; i++); for(; i < j && s.charAt(j) == "1"; j--); if(i < j) answer++; } return answer; }例2 刪除一個(gè)字符串所有的a,并且復(fù)制所有的b.注:字符數(shù)組足夠大
public void solve(char[] chars){ //先刪除a,可以利用原來(lái)字符串的空間,過(guò)程類似插入排序 int n = 0;//刪除a后的字符數(shù)組長(zhǎng)度 int bCount = 0; for(int i = 0; s[i] != "