目录

题目:

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.

题意:

难度不大,考虑所有边界情况即可。

解法:

C++版本实现方法1:

   // 从右往左依次遍历即可
  class Solution {
    public:
        int lengthOfLastWord(string s) {
            int length = 0;
            for (int index = s.length() - 1; index >= 0; index--){
                char c = s.at(index);
                if (c != ' '){
                    length++;
                }
                else if (c == ' ' && length != 0){
                    return length;
                }
            }
            return length;
        }
    }

leetCode Oj系统评判结果如下图所示:

leetCode C++1

;

C++版本实现方法2:

    // 直接利用现有轮子STL 
class Solution {
    public:
        int lengthOfLastWord(string s) {
            auto left = find_if(s.rbegin(), s.rend(), ::isalpha);
            auto right = find_if_not(left, s.rend(), ::isalpha);
            return distance(left, right);
        }
    }
    

leetCode Oj系统评判结果如下图所示:

leetCode C++2

;