【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 的评级:
接下来的测试--使用其他思路:
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;
}
}
评级:
0
上一篇: zookeeper集群部署