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
分析
这是个Easy难度的题目,看起来没有什么难度,应该就是以空格为切割找到最后一串字符串,并计算长度。
正向遍历的话遇到空格就清零,遇到字符就+1。需要考虑最后一位如果是字符的话,比较直观,直接输出遍历结束的结果即可。但是如果最后是空格的话还需要保留之前的结果。
反向遍历的话比较方便,当遇到空格时,如果此时word的长度为0,说明还没有遇到字符串,如果word长度不为0,说明此时已经找到了最后一个word,返回长度结果即可。
int lengthOfLastWord(char* s) {
int length = strlen(s);
int wordLen = 0;
for (int i = length - 1; i >= 0; i --)
{
if (s[i] != ' ')
wordLen ++;
else if (wordLen == 0 && s[i] == ' ')
continue;
else
break;
}
return wordLen;
}