Given a string s
consisting of words and spaces, return the length of the last word in the string.
A word is a maximal
class Solution {
public:
int lengthOfLastWord(string s) {
// /* 大概的思路就是:
// 1. 重新创建一个队列 string tmp_s
// 2. 遍历s , 遇到一个单词(空格之间的即为一个单词) 把它加入临时的队列
// 3.然后我们来遍历那个临时的队列
// */
// int len = s.length() ;
// string tmp_s ;
// for (int i = 0 ; i<len ; i++)
// {
// if(s[i] != ' ')
// { int index = 0 ;
// for(int j = i+1 ; j <len-1 ; j ++ )
// {
// if (s[j] == ' ')
// {
// return index = j ;
// break ;
// }
// }
// //把 i到j 加入到tmp_s 中
// for(int m = i ; i < index +1 ; m ++)
// {
// tmp_s[i] = s[m];
// }
// }
// } //感觉有点不对啊
// }
/* ------------------------正确答案--------------------------------------*/
/*要得到最后一个单词 及其长度 我们直反向遍历其实可以了 */
int index = s.length() -1;
while ( s[index] == ' ' )
{
index -- ;
}
int WordLength = 0 ;
while(index >= 0 && s[index] != ' ')
{
WordLength++ ;
index -- ;
}
return WordLength ;
/*总结一下:
1.题目只要求返回最后一个单词的长度
2.反向遍历
*/
}
};