题目描述
给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: “Hello World”
输出: 5
思路:
本题的关键是考虑末尾的空格,
1.可以用trim()函数将空格去掉再进行处理。
2.也可以用split()函数,按空格将单词分割开存入数组,直接读取最后一个单词的长度。
3.从后往前遍历,如果不为空格则开始计数,直到遇到一个空格,返回当前计数。
方法一:
class Solution {
public int lengthOfLastWord(String s) {
int j=0;
s=s.trim();
System.out.println(s);
for(int i=0;i<s.length();i++) {
j++;
if(s.charAt(i)==' ') {
j=0;
}
}
return j;
}
}
执行用时 :
6 ms
内存消耗 :
35.6 MB
方法二:
class Solution {
public int lengthOfLastWord(String s) {
String[] a = s.split(" ");
if (a.length == 0) {
return 0;
}else {
return a[a.length-1].length();
}
}
}
执行用时 :
3 ms
内存消耗 :
36.2 MB
方法三:
class Solution {
public int lengthOfLastWord(String s) {
int n=0;
boolean flag=false;
for(int i=s.length()-1;i>=0;i--) {
if(s.charAt(i)!=' ') {
flag=true;
n++;
}else if(s.charAt(i)==' '&&flag==true) {
return n;
}
}
return n;
}
}
执行用时 :
1 ms
内存消耗 :
35.8 MB
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/length-of-last-word