一、題目
給定一個僅包含大小寫字母和空格 ' '
的字符串,返回其最後一個單詞的長度。
如果不存在最後一個單詞,請返回 0 。
說明:一個單詞是指由字母組成,但不包含任何空格的字符串。
示例:
輸入: "Hello World" 輸出: 5
二、題解思路
- 題解思路1:遍歷字符串,如果字符不是空格,就將字符疊加到中間變量temp上,遇到空格,則將上一次疊加後的單詞存到vector中,然後temp賦值爲"",繼續查找。
- 題解思路2:先將字符串後面的空格刪掉,然後從後遍歷找到最後一個單詞,返回長度。
三、代碼實現
- C++代碼實現思路1
class Solution {
public:
int lengthOfLastWord(string s)
{
string temp = "";
vector<string> nums;
for(int i = 0;i<s.size();i++)
{
if(s[i] != ' ')
{
temp += s[i];
if(i+1 == s.size())
nums.push_back(temp);
}
else
{
nums.push_back(temp);
temp = "";
}
}
for(int i = nums.size()-1;i>=0;i--)
{
if(nums[i] != "")
return nums[i].size();
}
return 0;
}
};
- C++代碼實現思路2
class Solution {
public:
int lengthOfLastWord(string s)
{
string temp = "";
while(s[s.size()-1] ==' ') //刪除字符串後面的空格
{
s.erase(s.size()-1,1);
}
if(s == "")
return 0;
else
{
int j = s.size()-1;
while(s[j] != ' ' && j>=0) //找最後一個單詞
{
temp += s[j];
j--;
}
return temp.size();
}
}
};