题目:58. 最后一个单词的长度
思路:字符串处理,时间复杂度0(n)。
直接从最后面开始遍历,找到第一个不为空格的字符s[i]!=' ',然后再从j=i-1开始找到第一个为空格的字符s[j]==' ',或 j == -1时停下。i - j 即答案
C++版本:
cpp
class Solution {
public:
int lengthOfLastWord(string s) {
int i=s.size()-1;
while(s[i]==' ') i--;
int j=i-1;
while(j>=0&&s[j]!=' ') j--;
return i-j;
}
};
JAVA版本:
java
class Solution {
public int lengthOfLastWord(String s) {
int i=s.length()-1;
char[] c=s.toCharArray();
while(c[i]==' ') i--;
int j=i-1;
while(j>=0&&c[j]!=' ') j--;
return i-j;
}
}
Go版本:
go
func lengthOfLastWord(s string) int {
i:=len(s)-1
for s[i]==' ' {
i--
}
j:=i-1
for j>=0&&s[j]!=' ' {
j--
}
return i-j
}