华为机试第十三题:HJ13 句子逆序

华为机试第十三题:HJ13 句子逆序,第1张

class="superseo">华为机试第十三题:HJ13 句子逆序
  • 一、网址链接
  • 二、题目描述
      • ①描述
      • ②输入描述
      • ③输出描述
      • ④示例一
      • ⑤示例二
  • 三、代码实现
      • ①Java代码实现
      • ②C++代码实现
      • ③C代码实现

一、网址链接

牛客----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
#include
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 
#include 

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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/921217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存