一、网址链接
牛客----https://www.nowcoder.com/ta/huawei
二、题目描述
①描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
数据范围:输入的字符串长度满足 1<=n<=1000
注意本题有多组输入
②输入描述
输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。
③输出描述
得到逆序的句子
④示例一
输入: I am a boy
输出: boy a am I
⑤示例二
输入: nowcoder
输出: nowcoder
三、代码实现
①Java代码实现
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String[] str = scanner.nextLine().split(" ");
for (int i = str.length-1; i >= 0; i--) {
System.out.print(str[i]+" ");
}
}
}
}
②C++代码实现
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
while(getline(cin,str)){
int index1=0, index2 = str.size();
for(int i=str.size()-1; i>=0; i--){
if(str[i] == ' ') {
index1 = i;
cout<<str.substr(index1+1, index2-index1)<<' ';
index2 = i-1;
}
}
cout<<str.substr(0, index2+1)<<endl;
}
return 0;
}
③C代码实现
#include <stdio.h>
#include <string.h>
int main()
{
char str[10000];
int a,len,i;
gets(str);
len = strlen(str);
for(i=len-1;i>=0;i--)
{
if(str[i]==' ')
{
a = i+1;
while(str[a]!=' ')
{
if(a==len)
break;
printf("%c", str[a]);
a++;
}
printf(" ");
}
}
i=0;
while(str[i]!=' ')
{
printf("%c",str[i]);
i++;
}
return 0;
}