不是非常明确出题人的意图,事实上这道题用java的话简直是太简单了,用split处理一下,得到全部单词的一个数组,然后求最后一个的长度即可了。我个人认为java里最成功的函数就是split了,我做project时差点儿总能用到它,方便强大。
c++里面略微复杂一些,只是这也算是最简单的字符串的问题了。函数的接口决定了字符串的长度是未知的,要自己循环找一下,然后从尾向头找不等于空格的字符,找到了就找到了最后一个单词,然后累计直到空格结束。
class Solution { public: int lengthOfLastWord(const char *s) { if(s == NULL) return 0; int len = 0, res = 0; while(s[len] != ' ') len++; len--; while(s[len] == ' ') len--; while(len>=0&&s[len] != ' '){ len--; res++; } return res; } };