翻转单词顺序

简介: 翻转单词顺序

给定一个字符串,翻转该字符串,翻转时单词中的字符顺序不变。例如,如果字符串为"Hello World",则翻转后为"World Hello"。单词间以一个或多个空格分隔。注意,字符串开头和结尾都可能有多个空格。输出时去掉多余的空格。只在每个单词之间以1个空格间隔。输出的每行末尾没有空格。


输入格式:

输入可能包括多行。每行代表一个字符串,除了空格外,标点符号和普通字母一样处理。你可以认为一行的字符总数不会超过50000个,单词数不会超过600,每个单词的长度也不会超过30。


输出格式:

输出包括多行,每行对应输入的一行,为翻转后的字符串。输出时去掉多余的空格。只在每个单词之前以1个空格间隔。输出的每行末尾没有空格。


输入样例:

在这里给出一组输入。例如:

1. student. a am I
2.     World      Hello

结尾无空行


输出样例:

在这里给出相应的输出。例如:

1. I am a student.
2. Hello World


#include<iostream>
using namespace std;
int main(){
    string s;
    while(getline(cin,s)){
        int f=0;
        for(int i=s.size()-1;i>=0;i--){
            if((s[i]==' '&&s[i+1]!=' '&&s[i+1]!='\0')||(i==0&&s[i]!=' ')){
                if(f++) cout<<' ';
                if(i==0) i--;
                for(int j=i+1;s[j]!='\0';j++){
                    if(s[j]==' ') break;
                    cout<<s[j];
                }
            }
        }
        cout<<endl;
    }
}


目录
相关文章
|
1月前
|
Java API C++
leetcode-151:翻转字符串里的单词
leetcode-151:翻转字符串里的单词
39 0
|
1月前
|
Java
【剑指offer】-翻转单词序列-40/67
【剑指offer】-翻转单词序列-40/67
|
7月前
倒置字符串(倒置单词,标点不倒置)
倒置字符串(倒置单词,标点不倒置)
34 0
剑指offer 65. 翻转单词顺序
剑指offer 65. 翻转单词顺序
40 0
|
算法 Java API
LeetCode每日1题--翻转字符串里的单词
LeetCode每日1题--翻转字符串里的单词
92 0
翻转单词顺序(简单难度)
翻转单词顺序(简单难度)
58 0
翻转单词顺序(简单难度)
|
算法 Java
翻转字符串里的单词 (LeetCode 151)
翻转字符串里的单词 (LeetCode 151)
137 0
|
存储 算法 索引
LeetCode 30串联所有单词的子串&31下一个排列
给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。
92 0
LeetCode 30串联所有单词的子串&31下一个排列
7-59 翻转单词顺序 (20 分)
7-59 翻转单词顺序 (20 分)
60 0