欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【LeetCode】58.最后一个单词的长度

程序员文章站 2024-03-14 21:38:59
...

LeetCode 题目详情:

给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指由字母组成,但不包含任何空格的字符串。

示例:

输入: "Hello World"
输出: 5

自己的解法:

class Solution {
    public int lengthOfLastWord(String s) {
        if(s == null || s.trim().length() == 0){
			return 0;
		}
		int len = s.split(" ").length;
		return s.split(" ")[len-1].length();
    }
}

思考: 

   之前 每次 判断 string 都是直接写 

if( s == null || s.length() ==0){}

这次遇到相关的问题,把这个东西看了下。

String 一般需要考虑三个情况: 

null (当定义变量写在方法体外边时,可以不做初始化,此时string 为 null)。 此时 不能调用 s.equal(x) 和 s.length()

""  空串,是String 的一种特殊形式,没有值,但是是字符串,此时 所有的字符串方法都能用

" " 空格串,是String,内容是 空格,此时判断需要 trim(),所以在判断字符串的时候,经常见 trim(), 调用trim()之后,就变成了 空串。

总结: 遇到 字符串判断 直接上 :

if( s == null || s.length() ==0){}

leetCode 的评级:

【LeetCode】58.最后一个单词的长度

 

接下来的测试--使用其他思路:

class Solution {
    public int lengthOfLastWord(String s) {
       if(s == null || s.trim().length() == 0){
			return 0;
		}
		int lastLen = 0;
		int count = 0;
		char[] cs = s.toCharArray();
		for(int i = 0; i < s.length(); i++){
			if(cs[i] == ' '){	
				if(count != 0){ // 判断 纯属 为了 " "、  "  "
					lastLen = count;
				}
				count = 0;
			}else{
				count ++;
				if(i == s.length()-1){ // 判断为了 最后一个不是 " "
					lastLen = count;
				}
			}
		}
		return lastLen;
	}
}

 

评级:

【LeetCode】58.最后一个单词的长度

 

0