给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: “Hello World”
输出: 5
——————————————————————————————————————
语言:c++
注意:几种特殊情况:
后边带空格的
'a '
‘hello world ’
全是空格的
‘ ’
没有空格的
‘a’
正常的
‘hello world’
class Solution {
public:
int lengthOfLastWord(string s) {
//记录检索单词的终止位置
int posEnd=s.length()-1;
//记录检索单词的起始位置
int posBeg=0;
//保存最后一个单词的长度
int size=0;
//如果该字符串是空字符,或者长度为0,就应该返回0
if(s.empty()||s.length()==0){
return 0;
}
//放着该字符串的最后是空格,因此要检索出第一个不为空格的字符
while(posEnd>=0&&(s[posEnd]==' ')){
posEnd--;
}
//这是该字符串都是空格的情况
if(posEnd<0){
return 0;
}
posBeg=posEnd;
//检索到字符串的起点
while(posBeg>=0&&(s[posBeg]!=' ')){
posBeg--;
}
//表明该字符串从末位字符开始到第一个字符都是属于一个单词
if(posBeg<0){
return posEnd+1;
}
//遍历完以后,posBeg保存的是最后一个单词左边的空格位置
size=posEnd-posBeg;
return size;
}
};