LeetCode,leetcodeoj
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World", return 5.
這道題的要求是返回字串中最後一個單詞的長度。
遍曆字串,統計單詞長度。只有一點需要注意,就是最後單詞後面有空格的情況,因此需要判斷下一字元是否是字母,如果是,這重設長度為0即可。
時間複雜度:O(n)
空間複雜度:O(1)
1 class Solution 2 { 3 public: 4 int lengthOfLastWord(const char *s) 5 { 6 int l = 0; 7 while(*s) 8 { 9 if(' ' != *s ++)10 ++ l;11 else if(*s && ' ' != *s)12 l = 0;13 }14 return l;15 }16 };
當然,也可以引入計數器遍曆cnt用於記錄當前單詞長度,只有當cnt加1的時候,更新結果變數res。
1 class Solution 2 { 3 public: 4 int lengthOfLastWord(const char *s) 5 { 6 int res = 0, cnt = 0; 7 while(*s) 8 { 9 if(' ' == *s ++)10 cnt = 0;11 else12 res = ++ cnt;13 }14 return res;15 }16 };
轉載請說明出處:LeetCode --- 58. Insert Interval