Length of Last Word

描述

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.

分析

模拟。先从右到左找到第一个字母,然后从右到左找到第一个非字母,二者的距离就是最后一个word的长度。

代码

  1. // Length of Last Word
  2. // 偷懒,用 STL
  3. // 时间复杂度O(n),空间复杂度O(1)
  4. class Solution {
  5. public:
  6. int lengthOfLastWord(const string& s) {
  7. auto first = find_if(s.rbegin(), s.rend(), ::isalpha);
  8. auto last = find_if_not(first, s.rend(), ::isalpha);
  9. return distance(first, last);
  10. }
  11. };

原文: https://soulmachine.gitbooks.io/algorithm-essentials/content/cpp/string/length-of-last-word.html