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