2025年--Lc163--H58.最后一个单词的长度(数组和字符串)--Java版
1.题目
2.思路
先把字符串反转(字符串反转的时候要用StringBuilder的类型,String类型是不可变的)
然后用rev.trim().split(“\s+”);//按一个或多个空白字符把字符串切分成字符串数组。
第一个词的长度就是原字符串最后一个词的长度
s1[0].length()
3.代码实现
方法一:
class Solution {public int lengthOfLastWord(String s) {String rev=new StringBuilder(s).reverse().toString();//去掉字符串首尾的空白(空格、Tab、换行等)//split("\\s+")Java 字符串里反斜杠要转义:按一个或多个空白字符把字符串切分成数组。String[] s1=rev.trim().split("\\s+");if(s1.length==0) return 0;//第一个词的长度就是原串最后一个词的长度return s1[0].length(); }
}
方法二:时间复杂度O(n)
class Solution {public int lengthOfLastWord(String s) {int i=s.length()-1;//如果遇到空格就跳过while(i>=0&&s.charAt(i)==' ')i--;int len=0;//从后往前遍历while(i>=0&&s.charAt(i)!=' '){len++;i--;}return len;}
}