目录
题目:
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. For example, Given s = “Hello World”, return 5.
题意:
难度不大,考虑所有边界情况即可。
解法:
C++版本实现方法1:
// 从右往左依次遍历即可
class Solution {
public:
int lengthOfLastWord(string s) {
int length = 0;
for (int index = s.length() - 1; index >= 0; index--){
char c = s.at(index);
if (c != ' '){
length++;
}
else if (c == ' ' && length != 0){
return length;
}
}
return length;
}
}
leetCode Oj系统评判结果如下图所示:

;
C++版本实现方法2:
// 直接利用现有轮子STL
class Solution {
public:
int lengthOfLastWord(string s) {
auto left = find_if(s.rbegin(), s.rend(), ::isalpha);
auto right = find_if_not(left, s.rend(), ::isalpha);
return distance(left, right);
}
}
leetCode Oj系统评判结果如下图所示:

;
评论
欢迎分享想法或提问。使用 GitHub 账号登录后即可评论,评论将公开显示。
也可以在 GitHub Discussions 中查看和参与讨论 ↗