zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【华为OD机试】1027 - 单词倒排

华为 机试 OD 单词 倒排
2023-09-14 09:05:30 时间


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
💖系列专栏:华为OD机试(Java&Python&C语言)

一、题目


🔸题目描述

对字符串中的所有单词进行倒排。
说明:
1、构成单词的字符只有26个大写或小写英文字母;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;


🔸输入输出

输入
输入一行,表示用来倒排的句子
 
输出
输出句子的倒排结果


🔸样例1

输入
I am a student


输出
student a am I

🔸样例2

输入
$bo*y gi!r#l



输出
l r gi y bo

二、代码参考

import java.util.Scanner;

public class Main
{

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        String[] sp = sc.nextLine().split("[^a-zA-Z]+");
        StringBuilder sb = new StringBuilder();
        for (int i = sp.length - 1; i >= 0; i--)
            sb.append(sp[i] + " ");
        System.out.println(sb.toString().trim());
        sc.close();
    }

}

	



--------------------------------------------------------




while True:
    try:
        a=input().strip()
        for i in range(len(a)):
            if not a[i].isalpha():
                a=a.replace(a[i], ' ')
        b=a.split(' ')
        if ' ' in b:
            b = b.pop(' ')
        b.reverse()
        print(' '.join(b))
    except:
        break




--------------------------------------------------------------

#include <stdio.h>
#include <string.h>

//c = getchar()
//
int main(){

char c;
 char word[100][22]={'\0'};
int num=0,top=0;
    while((c = getchar())!=EOF){

        if(c>='a'&&c<='z'||c>='A'&&c<='Z')
            word[num][top++]=c;
        else{
            num++;
            top=0;
        }
            

    }
    
    for(int i=num-1;i>=0;i--){
        printf("%s ",word[i]);
    }


   
return 0;
}



请添加图片描述


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习