1. 程式人生 > >LeetCode --- 58. Length of Last Word

LeetCode --- 58. Length of Last Word

res ase span mon n) 時間復雜度 ace dsm courier

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 else 12 res = ++ cnt; 13 } 14 return res; 15 } 16 };

轉載請說明出處:LeetCode --- 58. Insert Interval

LeetCode --- 58. Length of Last Word