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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 从右往左依次遍历即可
classSolution {
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++;
}
elseif (c ==' '&& length !=0){
return length;
}
}
return length;
}
}
leetCode Oj系统评判结果如下图所示:
;
C++版本实现方法2:
1
2
3
4
5
6
7
8
9
10
11
// 直接利用现有轮子STL
classSolution {
public:int lengthOfLastWord(string s) {
auto left = find_if(s.rbegin(), s.rend(), ::isalpha);
auto right = find_if_not(left, s.rend(), ::isalpha);
returndistance(left, right);
}
}