牛客网_华为机试_031_牛客网_【中级】单词倒排
来源:互联网 发布:unity3d 获取鼠标位置 编辑:程序博客网 时间:2024/06/18 08:00
题目描述
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
输入描述:
输入一行以空格来分隔的句子
输出描述:
输出句子的逆序
示例1
输入
I am a student
输出
student a am I
题目地址:https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836?tpId=37&tqId=21254&tPage=2&rp=&ru=%2Fta%2Fhuawei&qru=%2Fta%2Fhuawei%2Fquestion-ranking
思路一:初级单词逆向输出升级版,可以利用流的特性忽略空格,但是非字母都视为分隔符,首先将字符串中非字母字符全部置为空格,然后利用流特性传给临时string,push到vector中
#include <iostream>#include <string>#include <vector>#include <sstream>using namespace std;int main(){ string str = ""; while(getline(cin, str)){ vector<string> result; //非字母置为空格字符 for(char &c : str) if(!isalpha(c)) c = ' '; stringstream ss(str); string temp = ""; //利用流的特性自动避开空格 while(ss >> temp){ result.push_back(temp); } cout << result[result.size()-1]; //注意输出格式,最后一个不能再加空格 for(int i = result.size()-2; i >= 0; i--) //这里i最好是int型,size_t若size()小于2会溢出 { cout << " " << result[i]; } cout << endl; } return 0;}
阅读全文
0 0
- 牛客网_华为机试_031_牛客网_【中级】单词倒排
- 【华为机试】【中级】单词倒排
- 华为机试在线训练-牛客网(19)【中级】单词倒排
- 华为oj中级 【中级】单词倒排
- 华为OJ中级题-单词倒排
- 【华为OJ】【019-【中级】单词倒排】
- 华为oj之【中级】单词倒排
- Java - 华为机试训练 - 【中级】单词倒排(正则表达式切割字符串)
- 华为机试-单词倒排
- 【中级】单词倒排
- 【中级】单词倒排
- 华为OJ——[中级]单词倒排
- 华为机试——单词倒排
- 【华为oj】单词倒排
- 华为oj 单词倒排
- 【华为 OJ 】单词倒排
- 华为oj 单词倒排
- [编程题]【中级】单词倒排
- JVM垃圾收集与内存分配策略
- RxJava 与 Retrofit 结合网络请求,你值得拥有
- 看图理解单链表的反转
- Ubuntu 16.04下安装64位谷歌Chrome浏览器
- python ConfigParser模块简介
- 牛客网_华为机试_031_牛客网_【中级】单词倒排
- react-native-elements/SwipeDeck android bug
- AndroidStudio导入Cordova生成的Android项目
- ZOJ3781 Paint the Grid Reloaded
- 尺度不变特征变换(SIFT)特征提取分析
- Android百度地图(一):百度地图定位sdk 类方法参数、定位原理详细介绍
- Spring TransactionTemplate + Mysql事务理解
- Solr主从配置
- iOS开发学习笔记之swift3.0几种加载网络图片的方法