码迷,mamicode.com
首页 > 其他好文 > 详细

华为OJ——单词倒排

时间:2016-08-13 11:31:55      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

对字符串中的所有单词进行倒排。

说明:

1、每个单词是以26个大写或小写英文字母构成;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;


输入描述:

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

输出描述:

输出句子的逆序

输入例子:
I am a student
输出例子:
student a am I
方法一:

import java.util.*;
public class Main
{
	public static void main(String[] args)
	{
		Scanner scan=new Scanner(System.in);
		while(scan.hasNext())
		{
			String input=scan.nextLine();
			char[] chars=input.toCharArray();
			for(int i=0;i<input.length();i++)
			{
				char ch=chars[i];
				if(!(ch>='a' && ch<='z') && !(ch>='A' && ch<='Z'))
					chars[i]=' ';
			}
			
			String str=String.valueOf(chars);
			String[] strs=str.split(" ");
			for(int i=strs.length-1;i>=0;i--)
			{
				if(!strs[i].equals("") )
				{
					System.out.print(strs[i]+" ");
				}
				else 
				{
					System.out.print(strs[i]);
				}
			}
		}
	}
}


方法二(正则表达式):

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = "";
        while(sc.hasNext())
        {
            str = sc.nextLine();
            String[] strs = str.split("[^A-Za-z]+");
            for(int i=strs.length-1;i>=0;i--)
            {
                if(i == 0)
                {
                    System.out.println(strs[i]);
                }
                else
                {
                    System.out.print(strs[i]+" ");
                }
            }
        } 
    }
}




华为OJ——单词倒排

标签:

原文地址:http://blog.csdn.net/tingzhiyi/article/details/52194505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!