LintCode-1173 · 反转字符串 III-题解(istringstream简单使用)
题目链接:
https ://www.lintcode.com/problem/1173/?_from=collection&fromId=208
描述:
给定一个字符串句子,反转句子中每一个单词的所有字母,同时保持空格和最初的单词顺序。
样例:
输入 : Let's take LeetCode contesc
输出 : s'teL ekat edoCteeL tsetnoc
解题思路:
由样例可以看出先将字符串按空格分开后再进行反转,所以我们可以先将字符串按空格分割,
在C++中可以使用istringstream进行分割,用string的reverse(s.begin(), s.end())进行反转。
istringstream简单使用:
1、使用前必须包含头文件 < sstream>
2、构造istringstream:istringstream 变量名称(字符串 / 字符串变量);
3、样例
#include<iostream>
#include<sstream> //istringstream 必须包含这个头文件
#include<string>
using namespace std;
int main()
{
string str="123 456\n789";
istringstream is(str);
string s;
while(is>>s) // >> 按照字符流读入 所以是按' '或者'\n'分割
{
cout<<s<<endl;
}
}
输出是:
123
456
789
#include<iostream>
#include<sstream> //istringstream 必须包含这个头文件
#include<string>
using namespace std;
int main()
{
string str = "123/456/789";
istringstream is(str);
string s;
while(getline(is, s, '/')) // getline函数,自定义按照'/'分割
{
cout<<s<<endl;
}
return 0;
}
输出是:
123
456
789
AC代码:
class Solution {
public:
/**
* @param s: a string
* @return: reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order
*/
string reverseWords(string &s) {
if(s!=""){ //判断字符串是否为空
istringstream s1(s); //构造istringstream
string s2;
string s3;
while (s1 >> s2) //按照字符流来截取
{
reverse(s2.begin(), s2.end()); //先将截取的字符串进行反转
s3 = s3 + s2 + ' '; //相加并添加原句的空格
}
s3.pop_back(); //因为在添加空格时在最后一个字符串末尾也加了空格,所以需要删除字符串最后的一个字符
return s3;
}
else
return "";
}
};
LintCode-1173 · 反转字符串 III-题解(istringstream简单使用)的更多相关文章
- C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...
- LeetCode557 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出: &q ...
- python反转字符串(简单方法)及简单的文件操作示例
Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
- Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)
题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输 ...
- Leetcode 557.反转字符串中的单词III
反转字符串中的单词III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest ...
- Java实现 LeetCode 557 反转字符串中的单词 III(StringBuilder的翻转和分割)
557. 反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode c ...
- [Swift]LeetCode557. 反转字符串中的单词 III | Reverse Words in a String III
Given a string, you need to reverse the order of characters in each word within a sentence while sti ...
- leetCode题解之反转字符串中的元音字母
1.问题描述 Reverse Vowels of a String Write a function that takes a string as input and reverse only the ...
- Leetcode 557. 反转字符串中的单词 III
1.题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" ...
随机推荐
- XML常用解析API有哪几种?
XML常用解析API有JAXP.JDOM.Dom4j等. JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口 ...
- String s = new String("xyz");创建了几个String Object?二者之间有什么区别?
两个或一个,"xyz"对应一个对象,这个对象放在字符串常量缓冲区,常量"xyz"不管出现多少遍,都是缓冲区中的那一个.New String每写一遍,就创建一个新 ...
- 对于 GC 方面,在使用 Elasticsearch 时要注意什么?
1.SEE:https://elasticsearch.cn/article/32 2.倒排词典的索引需要常驻内存,无法 GC,需要监控 data node 上 segmentmemory 增长趋势. ...
- spring 提供了哪些配置方式?
基于 xml 配置 bean 所需的依赖项和服务在 XML 格式的配置文件中指定.这些配置文件通常 包含许多 bean 定义和特定于应用程序的配置选项.它们通常以 bean 标签开 头. 例如: &l ...
- Windows 10 安装 wordpress
如何在Windows上安装wordpress. 安装前准备: 安装并配置好Apache httpd及PHP,见<Windows10安装PHP7+Apache 2.4>. 安装好MySQL, ...
- 学习MFS(二)
MooseFS,是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理server或单独disk或partition上,确保一份数据有多个备份副本,对于访问MFS的client或use ...
- ElasticSearch-学习笔记04-复杂查询
service package com.huarui.service; import com.huarui.entity.SearchEntity; import com.huarui.exectio ...
- js技术之运用"typeof()"运算符校验变量类型
一.简介 typeof();个人的理解就是可以判断出对应的变量类型,而且是用统一的类型 如:数字,小数等..... 都用Number来表示 而:所有对象都用object表示 二.探索到 typeof的 ...
- Python这些位运算的妙用,绝对让你大开眼界
位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中,在手 ...
- 用纯RUST手撸一个开源流媒体服务(RTMP/HTTPFLV/HLS)XIU
作者工作目前在音视频流媒体行业,用了大概一年的业余时间学习Rust,并且实现了一个简单的音视频流媒体服务,虽然据说Rust已经连续多年被评为最受程序员喜欢的语言,但是在国内还是比较冷门,作者比较看好R ...