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
.
题目看起来非常简单,但是要考虑很多特例:
1、正常形式: _world
2、空字符串:“”
3、后面是空格:aa______
4、只有空格: _______
直接附上代码吧,调试了挺久,一道easy题很是折磨人!!
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
int lengthOfLastWord(string s) {
int count =0;
if(s.length()==0) //空字符串处理
return 0;
int begin = s.length()-1;
if(s.at(begin)==' ') // 后面带有空格
while(s.at(begin)==' ')
{
begin--;
if(begin==-1) // 只有空格的字符串处理
return 0;
}
for(int i=begin;i>=0;i--)
{
if(s.at(i)!=' ' && isalpha(s.at(i)))
{
count++;
}
else
break;
}
return count;
}
};
int main()
{
Solution s;
cout<<s.lengthOfLastWord("hello world");
return 0;
}