算法题
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号。
例如输入“I am a student”,则通过控制台输出“student a am I”
import java.util.*; public class test2 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); String str=sc.nextLine(); String[] arrStr=str.split(" "); StringBuffer re=new StringBuffer(); for(int i=arrStr.length-1;i>=0;i--) { if(i==0) {//最后一个人单词,前面无需加空格; re.append(arrStr[i]); }else { re.append(arrStr[i]+" "); } } System.out.println(re.toString()); } }
#include<bits/stdc++.h> using namespace std; //编译环境DevC++5.9.2 const int maxn=100000+5; char solve[maxn]; int main() { while( nullptr!=gets(solve) ) { int len=strlen(solve); --len; while( len>=0 ) { if( 0==len ) { printf("%s\n",solve+0); break; } if( ' '==solve[len-1] ) { solve[len-1]='\0'; printf("%s ",solve+len); len-=2; } else { --len; } } } return 0; }
#include<iostream> #include<string> using namespace std; string reverseString(string iniString) { int len = iniString.size(); char temp; for(int i=0; i<len/2; i++) { temp = iniString[i]; iniString[i] = iniString[len-1-i]; iniString[len-1-i] = temp; } return iniString; } int main() { string str; getline(cin, str); str = reverseString(str); cout << str << endl; return 0; }
public void question2(String sentence){ String[] ss = sentence.split(" "); StringBuffer sb = new StringBuffer(); for(int i = ss.length-1;i >= 0;i--){ if (i == 0){ sb.append(convert(ss[i])); }else { sb.append(convert(ss[i])).append(" "); } } System.out.println(sb);; } private StringBuffer convert(String s){ int num = s.length() - 1; StringBuffer news = new StringBuffer(); for (int j = num;j >= 0;j--){ news.append(s.charAt(j)); } return news; }
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); String[] arrStr = str.replaceAll("“","").replaceAll("”","").split(" "); StringBuffer sb = new StringBuffer(); sb.append("“"); for (int i = arrStr.length-1; i >=0 ; i--) { if (i ==0){ sb.append(arrStr[i]); }else { sb.append(arrStr[i]+" "); } } sb.append("”"); System.out.println(sb.toString()); } }
import java.util.*; public class Test2 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); String[] arr = str.split(" "); StringBuffer sBuff = new StringBuffer(); for(int i = arr.length-1 ; i>=0 ;i--){ sBuff.append(arr[i]+" "); } System.out.println(sBuff.toString().substring(0,sBuff.length()-1)); } }
fun main() { val str= readLine() val outStr=str?.split(" ")?.reversed()?.joinToString(" ") println(outStr) }kotlin的实现也不难啊
public static void main(String[] args) { //无需另外创建一个新数组,使用双指针法,交换头尾指针的元素即可 Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String []ss = s.split(" "); int left = 0; int right = ss.length - 1; while (left < right){ String t = ss[left]; ss[left++] = ss[right]; ss[right--] = t; } for (int i = 0; i < ss.length; i++) { System.out.print(ss[i]); System.out.print(" "); } }
public class Reverse{ public static void main(String arg[]){ Scanner sc = new Scanner(System.in); StringBuffer sb = new StringBufer(); String str = sc.nextLine(); String [] arrStr = str.splite(); for(int i = arrStr.length - 1; i > 0; i--){ if(i = 0){ sb.appand(); }else{ sb.appand(" "); } System.out.println(ab); } } }
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = ""; while(true) { str = scanner.nextLine(); if (str.length() == 0) { System.out.println("请输入一句英语:"); continue; } break; } String[] splited = str.split(" "); StringBuilder stringBuilder = new StringBuilder(); for (int i = splited.length - 1; i > -1; i--) { stringBuilder.append(splited[i]); if (i > 0) { stringBuilder.append(" "); } } System.out.println(stringBuilder.toString()); scanner.close(); }