LeetCode 58 最后一个单词的长度[字符串] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 58 最后一个单词的长度[字符串] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路
利用指针和标记的方法,可以有两种解法,第一种就是从头往后检查,flag用来判断需不需要重新记录单词的长度,遇到空格跳过并把flag标记为0,这样遇到新的单词就会重新记录长度,把flag再置为1,防止记录归零,代码如下:
代码
class Solution {
public:
int lengthOfLastWord(string s) {
int len = 0, flag = 0;
for(int i = 0; i < s.length(); i ++) {
if(s[i] == ' ') {
flag = 0;
continue;
} else {
if(!flag) {
flag = 1;
len = 0;
}
len ++;
}
}
return len;
}
};
第二种方法采用了倒序的思想,因为只是统计最后一个单词的长度,倒着来也是一样的,同样也需要标记,这里的标记是为了区分一开始的空格和遍历最后一个单词之后遇到的空格,代码如下:
class Solution {
public:
int lengthOfLastWord(string s) {
int len = 0, flag = 0;
for(int i = s.length() - 1; i >= 0; i --) {
if(s[i] == ' ' && flag == 1) {
break;
}else if(s[i] == ' ' && flag == 0) {
continue;
} else {
flag = 1;
len ++;
}
}
return len;
}
};
以上是关于LeetCode 58 最后一个单词的长度[字符串] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—58. 最后一个单词的长度(字符串)—day45