string類算法題回顧

#leetcode58

  • 首先要審題,是求最后一個單詞的length,而不是最長的單詞的length。

  • string的最后可能會有空格,所以要用String的trim()方法去頭去尾。

    一個想法是再用String的split(" ")方法,再求最后一個單詞的長度。缺點是空間開銷大,時間也不見得快。
    看到一個一行的方法是用了減法和String的indexOf(),空間和時間開銷都不大。

    public int lengthOfLastWord(String s) {
      return s.trim().length()-s.trim().lastIndexOf(" ")-1;
    }

#leetcode387

  • 因為字母個數(shù)有限,可以考慮用長度為26的數(shù)組記錄每個字符出現(xiàn)的頻率。
  • 注意 java里char 'a' 對應的int97;

下面是英文字母的char和int互相轉(zhuǎn)化。

  char t = (char)(i + 97);    //其中i是英文字母順序,如a是0,c是2.
  int i = t - 'a';                   //其中t是字母的char形式,如'a','b'等.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容