华为-单词倒排

(java实现)


题目描述:

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

输入描述:

输入一行以空格来分隔的句子

输出描述:

输入一行以空格来分隔的句子
示例1:

输入

I am a student

输出
student a am I

输出句子的逆序

问题分析:

思路一:用空格替换非字母;
思路二:直接根据非字母进行分开;

相关知识:


参考代码:

思路一实现:

import java.util.*;
public class Main
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        String in = input.nextLine();
        in = in.replaceAll("[^A-Z^a-z]"," ");
        in = in.trim();
        String[] str = in.split(" ");
        StringBuilder res = new StringBuilder(); //initialized
        for (int i=str.length-1; i>=0; i--)
        {
            res.append(str[i]+" ");
        }
        String resStr = res.toString().substring(0,res.length()-1);
        System.out.println(resStr);
    }
}

思路二实现:

import java.util.*;
public class Main {

    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        String line = input.nextLine();
        String[] str = line.split("[^A-Za-z]+");
        StringBuilder sb = new StringBuilder();
        for (int i=str.length-1; i>=0; i--)
        {
            sb.append(str[i]+" ");
        }
        System.out.println(sb.toString().trim());
    }
}
全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务