58. Length of Last Word

一、Description:

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.

Example:

Input: "Hello World"
Output: 5

二、Ideas:

    这道题的目的是求由空格隔开的最后一个字符串的长度,刚看到这道题的时候,觉得这也太easy了吧....直接用split啊...,果然,测试时出了问题,才知道不是这么easy....委屈,split只能解决字符串非空,并且每个字符串间只能有一个“ ”且最后一个字符串不能为“ ”的情况,所以我还是选择了一个字符一个字符的遍历。此过程中,遇到空格不计数,遇到字符才计数,那么这样就可以么?显然不是,比如:“     a     aa    ”,这里涉及到一个计数清零的问题,那么什么时候计数要清零呢?应该是当计数之后,空格后面仍有字符串的时候,因此需要做标记。

三、Code:

class Solution {
    public int lengthOfLastWord(String s) {
        int num=0;
		int mark=0;
		for(int i=0;i<s.length();i++){
			if(s.charAt(i)!=' '){
				if(mark==0){
					mark=1;
					num++;
				}
				else if(mark==1){
					num++;
				}
				else if(mark==2){
					num=1;
					mark=1;
				}
			}
			else{
				if(mark==1) mark=2;
			}
		}
		return num;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值