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;
}
相关文章推荐
- SDUT 3362-数据结构实验之图论六:村村通公路(最小生成树_prim)
- NSString(拓展)
- 关于pear mail的发送中文邮件乱码可以参考
- idea debug的时候 启动起来超级慢
- css3样式
- Spring MVC 教程,快速入门,深入分析
- java中float内存存储原理
- Node.JS 简单爬虫
- apache网站根目录修改失败原因
- 检测form表单是否有被修改
- nginx 图片代理
- PendingIntent的Flag
- 海外支付:遍布全球的Paypal
- [LeetCode]Ugly Number II
- (原创)JAVA阻塞队列LinkedBlockingQueue 以及非阻塞队列ConcurrentLinkedQueue 的区别
- 安卓端推送功能实现:极光推送
- C++primer plus第六版课后编程练习答案6.7
- iCheck的使用示例
- 使用JavaMail创建邮件和发送邮件
- 转载 公钥、私钥、证书的基本概念和使用