首页 > 代码库 > leetcode || 58、Length of Last Word
leetcode || 58、Length of Last Word
problem:
Given a string s consists of upper/lower-case alphabets and empty space characters ‘
‘
, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World"
,
return 5
.
Hide Tags
String
题意:给一个字符串,包括大写和小写的字母和空格,求最后一次出现的不包括空格的字符串的长度
thinking:
(1)充分理解题意是解这道题的关键。
对于一些特殊情况: char *s=‘abc " (最后一个是空格), char *s = "a b "(连续空格)要注意到
(2)刚開始考虑使用 指针之差 来计算字符串的长度。发现掉入了一个无底深渊。各种特殊情况都要考虑在内,能解出来,可是比較绕
(3)採用 计数法 来解这道题最简单高效,遇到连续的非空格字符串開始计数,遇到空格保存计数结果,也有一些细节要注意。在代码中有凝视
(4)这道题考擦的是 分析问题的全面性 和 细节处理能力
code:
class Solution { public: int lengthOfLastWord(const char *s) { int i=0; int count=0; int length=0; while(*(s+i)!=‘\0‘) { if(*(s+i)!=‘ ‘) count++; else { if(count>0) //出现连续空格时,防止清空上次有效计数结果 length=count; count=0; } i++; } if(count!=0) //善后处理:以非空格结束的字符串 return count; else return length; //以空格结束 } };
leetcode || 58、Length of Last Word
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。