给定一个仅包含大小写字母和空格 ' '
的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: "Hello World"
输出: 5
c++:
执行用时 : 8 ms, 在Length of Last Word的C++提交中击败了18.33% 的用户
内存消耗 : 8.9 MB, 在Length of Last Word的C++提交中击败了0.82% 的用户
class Solution {
public:
int lengthOfLastWord(string s) {
if(s.length()==0)
return 0;
int cnt=0;
int i;
for(i=s.length()-1; i>=0; i--) {
if(s[i]!=' ')
break;
}
for( ; i>=0; i--) {
if(s[i]!=' ')
cnt++;
else
break;
}
return cnt;
}
};
C++;
执行用时 : 8 ms, 在Length of Last Word的C++提交中击败了18.33% 的用户
内存消耗 : 8.8 MB, 在Length of Last Word的C++提交中击败了0.82% 的用户
class Solution {
public:
int lengthOfLastWord(string s) {
int i;
int cnt=0;
for(i=0;i<s.length();i++){
if(s[i]==' '){ //如果s[i]为空格,且s[i+1]为字母(不为字符串末尾),证明遇到新单词,cnt清零
if((i+1)!=s.length()&&((s[i+1]<='z'&&s[i+1]>='a')||(s[i+1]<='Z'&&s[i+1]>='A')))cnt=0;
}
else cnt++;
}
return cnt;
}
};
【后记】
1.提交第一次没有考虑到string尾部有一个空格的情况,提交第二次没有考虑到string尾部有多个空格的情况。。。