leet58. 最后一个单词的长度

64 篇文章 0 订阅
32 篇文章 0 订阅

题目:

给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/length-of-last-word
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

思路一:c语言

1、空字符串直接返回0

2、反向遍历字符串,从不等于空格的字符开始计数maxSubStr++,到碰到下一个空格且maxSubStr>0结束,表示获取到了最后一个单词的长度

思路二:c++ stream

拓展:c++ stream 知识拓展 

 <sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。

  istringstream类用于执行C++风格的串流的输入操作。
  ostringstream类用于执行C风格的串流的输出操作。
  strstream类同时可以支持C风格的串流的输入输出操作。

常用操作:

  1.stringstream::str(); returns a string object with a copy of the current contents of the stream.

  2.stringstream::str (const string& s); sets s as the contents of the stream, discarding any previous contents.

  3.stringstream清空,stringstream s; s.str("");

  4.实现任意类型的转换

    

template<typename out_type, typename in_value>
    out_type convert(const in_value & t){
      stringstream stream;
      stream<<t;//向流中传值
      out_type result;//这里存储转换结果
      stream>>result;//向result中写入值
      return result;
    }

本题使用方法:istringstream

istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。

 

#include<iostream>  
#include<sstream>        //istringstream 必须包含这个头文件
#include<string>  
using namespace std;  
int main()  
{  
    string str="hello world";  
    istringstream in(str);  
    string s;  
    while(in>>s)  
    {  
        cout<<s<<endl;  
    }  
      
} 


输出是:
hello

world

参考链接:

https://www.cnblogs.com/hujunzheng/p/5042068.html

https://blog.csdn.net/longzaitianya1989/article/details/52909786

源码:

思路一:
1、空字符串直接返回0
2、反向遍历字符串,从不等于空格的字符开始计数maxSubStr++,到碰到下一个空格且maxSubStr>0结束,表示获取到了最后一个单词的长度

int lengthOfLastWord(char * s){
	int strlength = strlen(s);
	int maxSubStr=0;
	//判断特殊
	if(strlength == 0){
		return 0;
	}
	反向遍历
	while(strlength--){
		//出现空格,并且 maxSubStr>0
		if(s[strlength] == ' '&& maxSubStr >0){
			return maxSubStr;
		}
		//有效字符
		if(s[strlength] !=' '){
			maxSubStr++;
		}
	}
	return maxSubStr;	
}

思路二:c++ stream
class Solution {
public:
    int lengthOfLastWord(string s) {
		istringstream in(s);
		string res;
		while (in>> res);
		//cout << endl<<res;
		return res.size();
        
    }
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值