给你一个字符串 s,由若干单词组成,单词之间用单个或多个连续的空格字符隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " "
输出:0
提示:
1 <= s.length <= 104
s 仅有英文字母和空格 ' ' 组成
思路:
从右向左遍历,从第一个不是空格的字符开始计数,一旦开始计数,再次遇到空格的时候停止计数,返回。
AC代码:(C++)
class Solution {
public:
int lengthOfLastWord(string s) {
if (s.size() == 0) {
return 0;
}
int count = 0, len = s.size();
for (int i = len - 1; i >= 0; i--) {
if (count != 0 && s[i] == ' ') {
//不是第一次遇到空格,退出
break;
}
if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) {
count++;
}
}
return count;
}
};
版权声明:本文为weixin_44699689原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。