在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过
。
在一行上输出一个句子,代表以单词为单位逆序排放的结果。
Nowcoder Hello
Hello Nowcoder
A b C d
d C b A
import java.util.*;
public class Main {
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
String s=cin.nextLine();
String[] array=s.split("[^a-zA-Z]");
List<String> list= Arrays.asList(array);
Collections.reverse(list);
for(String each:list.subList(0,list.size()-1)){
System.out.print(each+" ");
}
System.out.println(list.get(list.size()-1));
}
}
}
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1;
getline(cin,s1);
s1=s1+' ';
int end=s1.length()-1;
for(int i=s1.length()-1;i>=0;i--)
{
if(s1[i]==' ')
{
for(int j=i+1;j<=end;j++)
{
cout<<s1[j];
}
end=i;
}
}
for(int j=0;j<=end;j++)
{
cout<<s1[j];
}
} #include<stdio.h>
#include<string>
#include<map>
#include<iostream>
#include<math.h>
using namespace std;
int main(){
string strs;
getline(cin,strs);
for(int i = strs.length()-1;i>=0;i--){
if(strs[i]==' ' ){
int j =i;
while(strs[j+1]!=' ' && strs[j+1]!='\0'){
cout<<strs[j+1];
j++;
}
cout<<strs[i];
}
}
int start=0;
while(strs[start]!=' ') {
cout<<strs[start];
start++;
}
} import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] strArr = str.split("\\s+");
StringBuilder sb = new StringBuilder();
int len = strArr.length-1;
for(int i = len; i >= 0; i--){
if(i==len){
sb.append(strArr[i]);
}else{
sb.append(" "+strArr[i]);
}
}
System.out.println(sb);
}
} def ReverseWord(string): lst = string.split()[::-1] for i in lst: print(i,end=' ') if __name__=='__main__': s = input() ReverseWord(s)
import java.util.*;
//从后往前遍历用双指针截取单词
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char[] c = s.toCharArray();
StringBuilder res = new StringBuilder();
int j = s.length()-1,i = j;
while(i >= 0){
while(i >= 0 && s.charAt(i)!= ' ') i--;//搜索首个空格
res.append(s.substring(i+1, j+1) + ' ');//添加单词
while(i >= 0 && s.charAt(i) == ' ') i--;//跳过单词间空格
j = i;
}
System.out.println(res.toString().trim());//最后添加的一个单词有空格
}
} print(' '.join(input().split()[::-1])) s_list = input().split()
s_list.reverse()
print(' '.join(s_list)) import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
StringBuffer str = new StringBuffer();
String[] split = str.append(in.nextLine()).reverse().toString().split(" ");
for (String s :split){
str.setLength(0);
str.append(s);
System.out.print(str.reverse()+" ");
}
}
}
} #include<iostream>
using namespace std;
int main()
{
string str[1000];
int i=0;
while(cin >> str[i])
i++;
for(i-=1;i>=0;i--)
cout << str[i] << " ";
} #include <iostream>
#include <string>
/*思路:在输入的时候记住单词,创建一个新的字符串逆序插入单词*/
int main(){
using namespace std;
string line, word; //line:逆向输出的字符串;word:在输入的时候记住每个单词
do{
cin >> word;
line.insert(0, 1, ' ');//保证每个单词之间都有空格
line.insert(0, word);//每次都在字符串头部插入单词
}while(cin.get() == ' ');
line.pop_back();//删掉最后多余的空格
cout << line;
return 0;
}