给定一个字符串 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)
有其他想法以及对代码有疑问的朋友欢迎在评论区提出和指出供大家讨论,作者虽然菜但是会尽力解答,每天都会看的。