LeetCode --- 58. Length of Last Word
阿新 • • 發佈:2017-08-04
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