在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过
。
在一行上输出一个句子,代表以单词为单位逆序排放的结果。
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]))
#include <iostream> #include <string> #include <sstream> #include <vector> using namespace std; int main(){ string str; while(getline(cin,str)){ vector<string> vec; stringstream ss; ss<<str; while(ss>>str){ vec.push_back(str); } for(auto it=vec.rbegin();it!=vec.rend();++it){ cout<<*it<<' '; } cout<<endl; } }
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; }