单词倒排
来源:互联网 发布:淘宝导航css代码 html 编辑:程序博客网 时间:2024/05/17 07:57
题目描述
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
输入描述:
输入一行以空格来分隔的句子
输出描述:
输出句子的逆序
输入例子:
I am a student
输出例子:
student a am I
//题目标题://将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”。//所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。#include<iostream>#include<string>#include<vector>using namespace std;string SentenceReverse(string str){vector<string> vec;string res;for (int i = 0; i < str.size();){string tmp;while (i<str.size() && str[i] == ' ')i++;while (i < str.size() && str[i] != ' '){int count = 0;while (i<str.size() && str[i] == '-'){count++;i++;}if (count >= 2){i--;break;}if (!((str[i] >= 'a'&&str[i] <= 'z') || (str[i] >= 'A'&&str[i] <= 'Z'))) break;tmp.push_back(str[i]);i++;} if(!tmp.empty()) //必须有这一步vec.push_back(tmp);i++;}for (int i = vec.size() - 1; i >= 0; i--){res += vec[i];if (i>0)res.push_back(' ');}return res;}int main(){string str1;while (getline(cin, str1)){cout << SentenceReverse(str1); cout<<endl;}return 0;}
0 0
- 单词倒排
- 单词倒排
- 单词倒排
- 【中级】单词倒排
- 单词倒排
- 单词倒排
- 【中级】单词倒排
- 17.单词倒排
- 28:单词倒排
- Java:单词倒排
- 【华为oj】单词倒排
- 华为oj 单词倒排
- 倒排句子的单词
- 【华为 OJ 】单词倒排
- 华为oj 单词倒排
- ——单词倒排
- 单词倒排(C/C++)
- 华为(5)单词倒排
- 11.2 icebox 常用配置
- eclipse默认指向 WebContent 目录 修改为 webRoot
- 几款实用的Android Studio 插件
- adb
- JNI/NDK
- 单词倒排
- web前端开发中浏览器兼容问题(二)
- iOS开发之制作framework并将模拟器Framework与真机Framework合并
- OpenResty 2016技术大会——百格活动
- Android 平台下编译和使用 i2c-tools
- Java StringBuffer 和 StringBuilder 类
- JVM原理讲解和调优
- 点击变色
- leetcode(78).326. Power of Three