首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode 最後一個單詞長度:反向遍歷簡潔解法

     編輯:關於C++

題目描述

給定字符串 s,由大小寫字母和空格組成,返回最後一個單詞的長度。單詞定義為非空格字符序列。若不存在返回 0。

正向遍歷法

掃描字符串,遇到非空格且前一字符為空格(或為首字符)時重置計數器,非空格時遞增。最終計數器即為最後單詞長度。

反向遍歷法(更簡潔)

從末尾向前跳過尾部空格,再計數連續非空格字符直到遇到空格或開頭。利用標準庫 find_last_not_of 和 find_last_of 可一行實現。

代碼實現 (C++)

class Solution {
public:
    int lengthOfLastWord(string s) {
        int end = s.find_last_not_of(' ');
        if (end == string::npos) return 0;
        int start = s.find_last_of(' ', end);
        return end - start;
    }
};

複雜度

  • 時間:O(n)
  • 空間:O(1)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved