您的位置:首页 > 其它

LintCode_最后一个单词的长度

2015-11-26 16:11 204 查看
问题描述:



给定一个字符串, 包含大小写字母、空格
' '
,请返回其最后一个单词的长度。如果不存在最后一个单词,请返回
0


样例:给定 s =
"Hello World"
,返回
5


注意:一个单词的界定是,由字母组成,但不包含任何的空格。

算法思想:

因为要检测最后一个单词,因此,要从字符串的最后往前检索。刚开始的没有考虑到该字符串的最后几个字符可能是空格的情况。如果是检测第一个单词的长度,就从前往后检索,并且要排除开始是空格的字符。

public static int lengthOfLastWord(String s) {

//记录检索单词的终止位置
int posEnd=s.length()-1;
//记录检索单词的起始位置
int posBeg=0;
//保存最后一个单词的长度
int size=0;

//如果该字符串是空字符,或者长度为0,就应该返回0
if(s==null||s.length()==0){
return 0;
}

//放着该字符串的最后是空格,因此要检索出第一个不为空格的字符
while(posEnd>=0&&(s.charAt(posEnd)==' ')){
posEnd--;
}

//这是该字符串都是空格的情况
if(posEnd<0){
return 0;
}

posBeg=posEnd;

//检索到字符串的起点
while(posBeg>=0&&(s.charAt(posBeg)!=' ')){
posBeg--;
}

//表明该字符串从末位字符开始到第一个字符都是属于一个单词
if(posBeg<0){
return posEnd+1;
}

//遍历完以后,posBeg保存的是最后一个单词左边的空格位置
size=posEnd-posBeg;

return size;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: