大家好,继续刷题日记,这道题非常简单,稍微记录一下,便于后期回顾。题目要求如下:
这里没有说清楚,我后面看他给的测试用例才搞清楚,如果他后面一直是空格,那空格后的单词也可以看做是最后一个单词,不必要求必须是从最后开始。总体思路如下:
首先进行一个从后往前的循环,设置一个开关temp先置为1。判断如果他从最后往前直接是空格就continue,如果不是空格就计数加一并把temp设为0,表示已经有字母输入,后面的空格不可以跳过了,然后再遇到空格跳出,最后返回计数就可以了。
代码如下:
class Solution { public: int lengthOfLastWord(string s) { int len = s.size(); int cont = 0; int temp = 1; for (int i = len - 1;i >= 0;i--){ if (s[i] == 32 && temp == 1) continue; else{ if((s[i] >= 97 && s[i] <= 122) || (s[i] >= 65 && s[i] <= 90)){ cont++; temp = 0; } else return cont; } } return cont; } };
最后的一个return cont是为了防止他没有空格全都是字母的情况。
我们下期见!