一、Description:
Given a string s consists of upper/lower-case alphabets and empty space characters ' '
, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
Example:
Input: "Hello World" Output: 5
二、Ideas:
这道题的目的是求由空格隔开的最后一个字符串的长度,刚看到这道题的时候,觉得这也太easy了吧....直接用split啊...,果然,测试时出了问题,才知道不是这么easy....,split只能解决字符串非空,并且每个字符串间只能有一个“ ”且最后一个字符串不能为“ ”的情况,所以我还是选择了一个字符一个字符的遍历。此过程中,遇到空格不计数,遇到字符才计数,那么这样就可以么?显然不是,比如:“ a aa ”,这里涉及到一个计数清零的问题,那么什么时候计数要清零呢?应该是当计数之后,空格后面仍有字符串的时候,因此需要做标记。
三、Code:
class Solution {
public int lengthOfLastWord(String s) {
int num=0;
int mark=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)!=' '){
if(mark==0){
mark=1;
num++;
}
else if(mark==1){
num++;
}
else if(mark==2){
num=1;
mark=1;
}
}
else{
if(mark==1) mark=2;
}
}
return num;
}
}