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