题目链接:Leetcode 58
描述一下题目:
给定一个只有大小写字母和空格的字符串,计算最后一个单词的长度,如果不存在单词,则返回0.
解题思路:
从字符串尾端开始遍历字符串呀~~~设置一个标志位和计数器,当遇到第一个非空格时,标志位置true,同时计数器++直到遇到空格。
代码如下:(C++)
/*******************************************************************************
Copyright © 2018-20xx Qiao Chuncheng, All Rights Reserved.
File name: 058[最后一个单词的长度].cpp
Author: Qiao Chuncheng
Version: v1.0
Date: 2018-04-17
*******************************************************************************/
class Solution {
public:
int lengthOfLastWord(string s) {
bool flag = false;//利用flag来确定是经过最后一个单词
int cnt = 0;
if (s.empty())
return 0;
for (int i = s.length() - 1; i >= 0; i--)//求最后一个单词的长度,从尾部开始扫描
{
if (flag == false && s[i] == ' ')
continue;
if (s[i] != ' ')
{
cnt++;
flag = true;
}
else
{
break;
}
}
return cnt;
}
};