首页 > 试题广场 >

算法题 输入一个英文句子,翻转句子中单词的顺序,但单词

[问答题]

算法题

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号。

例如输入“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());
}
}

发表于 2019-09-07 22:32:50 回复(1)
#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;
 } 

发表于 2020-10-29 19:40:04 回复(0)
s = input("输入一个英文句子:").split(" ")
ls = list(s)
ls.reverse()
print(" ".join(ls))
Python代码简单实现:python是最好用的语言
发表于 2019-09-06 15:05:34 回复(1)
#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;
}

发表于 2019-09-22 10:48:20 回复(0)
#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main() {
    string s;
    vector<string> str;
    while (cin >> s) {
        str.push_back(s);
        if (cin.get() == '\n') {
            break;
        }
    }
    for (int i = str.size() - 1; i > 0; i--) {
        cout << str[i] << " ";
    }
    cout << str[0];
    return 0;
}
发表于 2024-03-24 15:30:49 回复(0)
function fn1(str) {
        var arr = str.split(' ')
        arr.reverse()
        str = arr.join(' ')
        console.log(str)
      }
发表于 2021-09-22 11:58:21 回复(0)
public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    String str=sc.nextLine();
    String[] Words = null;
    Words=str.split(" "); int Count=Words.length; for(int i=Count-1;i>=0;i--){
        System.out.println(Words[i]);
    }
}
发表于 2019-10-10 15:19:50 回复(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;
}

发表于 2023-02-21 20:55:44 回复(0)
#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str;
    string str2;
    string temp;
    getline(cin, str);
    int len = str.size();
    for (int i = len-1; i >=0; i--)
    {
        if (str[i] == ' ')
        {
            for (int i = str2.size()-1; i >=0 ; i--)
            {
                temp.push_back(str2[i]);
            }
            for (int i = 0; i < str2.size(); i++)
                cout << temp[i];
            cout << " ";
            str2.clear();
            temp.clear();
            continue;
        }
        str2.push_back(str[i]);
    }
    for (int i = 0; i < len; i++)
    {
        if (str[i] == ' ')
            break;
        cout << str[i];
    }
    return 0;
    
}

发表于 2022-09-24 10:33:07 回复(0)
注意输入的引号是中文引号!!!
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());
    }
}


发表于 2021-05-30 23:56:59 回复(0)
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));

    }
}

发表于 2021-03-03 10:58:39 回复(0)
text = 'I am a student'.split()
print(' '.join(text[::-1]))

编辑于 2021-02-21 23:52:25 回复(0)
public class Test {
    
    public static void main(String[] args) {
        
        String into = "I am a student";
        System.out.println(reverse(into));
    }
    
    public static String reverse(String into){
        String[] split = into.split(" ");//对输入的字符串进行分割,返回一个数组
        StringBuilder sb = new StringBuilder();//由于单线程,StringBuilder效率较高,用于不断地添加字符串
        for(int i = split.length-1; i>=0; i--){
            if(i == 0){
                sb.append(split[i]);//若已是最后一个单词,则不添加空格
            }else{
                sb.append(split[i]+" ");
            }
        }
        return sb.toString();//返回一个字符串
    }
}
发表于 2020-09-20 17:03:07 回复(0)

String[] split = "I am a student".split(" ");

    for (int i = split.length - 1; i >= 0; i--) {

      System.out.print(split[i]);

      //补充空格

      if (i!=0){

        System.out.print(" ");

      }

    }

发表于 2020-09-12 14:24:46 回复(0)
package hengsheng;

public class T1_23分割反转字符串 {
    public static void split_reverse(String s) {
        System.out.println("分割反转前:"+s);
        String[] sArray=s.split(" ");
        String ss = "";
        System.out.println("...............");
        for(int i=sArray.length-1;i>=0;i--) {
            ss+=sArray[i]+" ";
        }
        
        System.out.println("分割反转后:"+ss);
    }
    
    public static void main(String[] args) {
        split_reverse("I am a Nchu student");
    }
}
发表于 2020-08-30 23:07:27 回复(0)
fun main() {
    val str= readLine()
    val outStr=str?.split(" ")?.reversed()?.joinToString(" ")
    println(outStr)
}
kotlin的实现也不难啊
发表于 2020-02-23 14:53:05 回复(0)
 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(" ");
        }
    }

发表于 2019-10-29 17:49:19 回复(0)
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);
        }
    }
}

发表于 2019-10-10 22:24:57 回复(0)
package 笔试;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        
        StringBuffer sb=new StringBuffer();
        String[] a=str.split(" ");//字符串转化为字符数组
        
        for (int i = a.length-1; i >=0; i--) {
            if(i==0) {//最后一个人单词,前面无需加空格;
                sb.append(a[i]);
            }else {
            sb.append(a[i]+" ");
        }
            
        }
        str=sb.toString();
        System.out.println(str.toString());
    }    
}   
发表于 2019-09-26 11:27:45 回复(0)
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();
}

发表于 2019-09-15 16:32:23 回复(0)