看到的时候就想到很笨的方法,就是利用一个计数器,遍历每一个字符,不为空格计数器++,为空的时候计数器归0,在遍历下一个字符之前,先判断计数器是否为空,如果不为空就设置返回值为当前计数器的值,这样可以防止字符串最后有空格导致的返回为0;
class Solution {
public int lengthOfLastWord(String s) {
int len=s.length();
int res=0,r=0;
for(int i=0;i<len;i++)
{
if(s.charAt(i)!=' ')//不为空格就计数器++
{
res++;
}
else res=0;
if(res!=0) r=res;//判断计数器是否为0,防止最后的字符为空格
}
return r;
}
}
然后看了题解发现,诶,可以反向遍历,这就可以非常快的拿到最后一个单词了
class Solution {
public int lengthOfLastWord(String s) {
int len=s.length();
int res=0;
int i=len-1;
while(s.charAt(i)==' ' && i>=0)
{
i--;//去除最后的空格
}
for(;i>=0;i--)
{
if(s.charAt(i)!=' ')
{
res++;
}
else break;
}
return res;
}
}