最后一个单词的长度—LintCode
本人电子系学生,非科班人员,代码糙见谅
public int lengthOfLastWord(String s)
{
if(s.length()==0) return 0;
if(s.charAt(0)==' '&&s.length()==1) return 0;
//当s长度为零或只有一个空格是返回零
int count=0;
//定义计数长度
int j=s.length()-1;
while(s.charAt(j)==' ')
{
j--;//从后往前
}
int a=j+1;
//a是我随手定义的字符串新的长度
//比如"aaa bb " 在代码运行后a的值为6
//即忽略了最后一个单词之后的空格
for(int i=0;i<a;i++)
{
j=i+1;//让j永远指向i后面一个单元
if(s.charAt(i)==' ')//找到一个空格时
{
count=0;
//让计数值清零(防止前一个单词数累加)
while(j<a&&s.charAt(j)!=' ')//不断让j后移,直到遇到不是空格的单元,或者到了字符串最大长度
{
count++;
j++;
}
if(j==a) return count;
//如果j恰好为a,则证明count的值即为所求
}
else count++;//假设"aaa",则count值便是这个单词的长度
}
return count;
}