程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> leetcode筆記:Length of Last Word

leetcode筆記:Length of Last Word

編輯:關於C++

一. 題目描述

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.

二. 題目分析

該題的大意是,輸入一串字符,輸出最後一個單詞的長度。

除了考慮一些基本的邊界條件,該題沒有過多的要求,也沒有檢測單詞中是否含有'.'等非字母符號。可采用從前往後或從後往前遍歷一次,期間經過少量判斷語句即可記錄單詞的長度。

三. 示例代碼

// 從前往後遍歷
class Solution {
public:
    int lengthOfLastWord(string s) {
        int result = 0;
        if (s.size() < 1 || s == " ") return result;
        if (s[0] != ' ') result = 1;
        for (int i = 1; i < s.size(); ++i)
        {
            if (s[i] != ' ' && s[i - 1] == ' ') result = 1;
            if (s[i] != ' ' && s[i - 1] != ' ') ++result;
        }
        return result;
    }
};
// 從後往前遍歷,更簡潔的代碼
int lengthOfLastWord(string s) {
    int index = s.size() - 1, result = 0;
    while (index >= 0 && isspace(s[index])) --index;
    while (index >= 0 && isalpha(s[index])) {
        ++result;
        --index;
    }
    return result;
}

四. 小結

該題的邊界條件不算復雜,但若加入其他限制,也可以變成一道難題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved