Length of Last Word 字符串中最后一个单词的长度 @LeetCode

/**
 * Length of Last Word
 * 
 * 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.
 * 
 */
public class S58 {

	public static void main(String[] args) {
//		String s = "Hello World";
		String s = "  dda   ";
		System.out.println(lengthOfLastWord(s));
	}

	// 从尾部向前遍历
	public static int lengthOfLastWord(String s) {
		int i;
		int stringStart = -1;		// 用于标示string开始的地方,即出现非空格的地方
		for(i=s.length()-1; i>=0; i--){
			// 如果已经出现string头,且有空格标示string尾
			if(stringStart!=-1 && s.charAt(i) == ' '){
				return stringStart-i;
			}
			// 如果尚未出现string头,且当前这个符合string头,则标记当前为string头
			else if(stringStart==-1 && s.charAt(i) != ' '){
				stringStart = i;
			}
		}
		// 如果string头已经找到了,而且已经遍历了整个string
		if(stringStart!=-1 && i == -1){
			return stringStart+1;
		}
		return 0;
    }

}



灵活使用trim函数

public class Solution {
    public int lengthOfLastWord(String s) {
        if(s==null || s.length()==0){
            return 0;
        }
        s = s.trim();
        int i = s.length()-1;
        
        while(i >= 0) {
            if(s.charAt(i) == ' ') {
                return s.length()-i-1;
            }
            i--;
        }
        return s.length();
    }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值