问题描述:给定一个字符串,包含大小写字母和空格字符,返回字符串中最后一个词的长度。如果最后一个词不存在,返回0。
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
.
输入:字符串
输出:整数
示例:输入"Hello World",输出5;输入"Hello LintCode",输出8。
注意:一个词是不包含空格字符的字符串。
思路:对字符串为空的特殊情况处理后。从字符串末尾开始往前遍历,碰到空格即停止。如果字符串末尾是连续多个空格,则需要先排除无效空格字符,然后再开始往前遍历。
代码如下:
/**
* @param s: A string
* @return: the length of last word
*/
int lengthOfLastWord(string &s) {
// write your code here
int l = s.size();
if (l<1) return 0;
int count = 0;
int i = l-1;
while (s[i]==' '&&i>=0) i--; // Delete spaces at the end
for (i; i >= 0; i--) {
if (s[i]==' ') break;
else {
count++;
}
}
return count;
}