给定一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
最开始觉得思路就是从最右面往左遍历,每向左一位count++,遇到空格break就可以结束…
直到我遇到了"a "和"a b "这样在我想象之外的字符串
思考后想到了方法,定义count,如果count为0的话,那么代表后面都是空格,直到count不是0的时候代表遇到了最后一个单词,再次遇到空格的时候代表单词结束。
代码如下
class Solution {
public int lengthOfLastWord(String s) {
int count = 0;
for(int i=s.length()-1;i>=0;i--) {
if(s.charAt(i) == ' ') {
if(count == 0) {
continue;
}
else {
break;
}
}
count++;
}
return count;
}
}
时间复杂度O(n)
有其他想法以及对代码有疑问的朋友欢迎在评论区提出和指出供大家讨论,作者虽然菜但是会尽力解答,每天都会看的。

本文介绍了一种计算字符串中最后一个单词长度的方法,并提供了一个具体的Java实现案例,通过从字符串末尾开始遍历并忽略多余空格来高效解决问题。
430

被折叠的 条评论
为什么被折叠?



