題目描述:
給定乙個僅包含大小寫字母和空格』 '的字串s,返回其最後乙個單詞的長度。如果字串從左向右滾動顯示,那麼最後乙個單詞就是最後出現的單詞。
如果不存在最後乙個單詞,則返回0.
說明:乙個單詞是指僅由字母組成、不包含任何空格字串的最大子字串。
樣例:
輸入:「hello world」
輸出:5
輸入:"hello world "
輸出:5
題解:
看到題首先想到的就是從後向前遍歷,這個時候會遇到兩種情況:字串就是以乙個單詞結尾的、字串是以空格結尾。
所以開始遍歷時要先把結尾的空格過濾掉。
之後開始遍歷最後乙個單詞,結束的標誌也有兩種情況:遇到空格就表明乙個單詞結束、一直遍歷到字串首位也沒有發現空字串。
利用雙指標,兩個指標最終的差值就是該字串的長度。
**:
public static int lengthoflastword(string s)
if(end < 0)
return 0;
int start = end;
while(start >= 0 && s.charat(start) != ' ')
return end - start;
}
注意第二個while裡的兩個條件,順序不能調換。 LeetCode刷題系列19
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?1 方法一 兩次遍歷演算法 思路我們注意到這個問題可以容易地簡化...
leetcode刷題筆記19
面試題28.對稱的二叉樹 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。definition for a binary tree node.class treenode def init self,x self.val x self.left none...
LeetCode題庫 簡單題
leetcode 題目鏈結 反轉一半 負數不可能是回文 個位數一定是回文 0是回文 問題 如何反轉一半的數字 演算法例項 bool ispalindrome int x if x 10 x為個位數 一定是回文 return1 int revernum 0 while x revernum retur...