首页 > 代码库 > leetcode Length of Last Word
leetcode Length of Last Word
题目:给定一个只包含大小写字母和空格的字符串。返回最后一个单词的长度。“abc a” 是1 “abc ”是3
两种思路,一个从头往后,一个从后往前。
1.从头往后的话,需要记住空格前的一个单词是多长,如果空格到尾了,就输出记录的值,如果空格之后还有单词,就重新计数。用flag记录知否遇到空格。
class Solution {public: int lengthOfLastWord(const char *s) { int flag = 0, cnt = 0; while(*s != ‘\0‘) { if (flag) {cnt = 0; flag = 0;} while (*s != ‘\0‘ && *s != ‘ ‘) {cnt++;s++;} while (*s != ‘\0‘ && *s == ‘ ‘) {s++;flag = 1;} } return cnt; }};
2.从后往前,先确定最后一个指针,然后一直往前碰到第一个单词之后的空格就返回。
class Solution {public: int lengthOfLastWord(const char *s) { const char *p = s + strlen(s) - 1; int cnt = strlen(s), t = 0; while(cnt > 0) { if (*p == ‘ ‘) {p--; cnt--;continue;} if (cnt > 0 && *p != ‘ ‘) { while(cnt > 0 && *p != ‘ ‘) { t++;cnt--;p--; } return t; } } return 0; }};
leetcode Length of Last Word
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。