• 图解算法——句子逆序


    1、题目描述

    将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”,所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

    题目来源:
    https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3?tpId=37&tags=&title=&difficulty=0&judgeStatus=0&rp=1

    2、示例

    输入描述:

    输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。

    输出描述:

    得到逆序的句子。

    示例1

    输入:I am a boy

    输出:boy a am I

    3、解题思路

    根据前两篇的文章,想要求到最快的方法,应该是字节读取。但那是一个单词或者一个数字,长度比较短,而这里是句子,长度较长。

    我们想,一个英文句子里,除了有单词,还有什么?当然是空格呀。

    故:我们可以先读取到目标句子,然后根据空格来隔开,获得一个字符串数组,这样数组里每个节点里都是一个单词。

    然后我们逆序输出,并手动加空格,然后最后一个输出要手动输出,因为最后一个单词后没有空格。

    代码如下:

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

    查看提交速度如何:

     我想着可能还会有更好地办法,我查了下思路基本都差不多,但是纳闷了,内存如何才能更小呢?欢迎各位大佬提出宝贵建议,谢谢~~

    Over.......

  • 相关阅读:
    博客园自动生成目录及页面美化
    Maven个人手册
    log4j日志工具
    redis教程(整理中)
    linux集群时钟问题
    Flex远程访问获取数据--HTTPService
    gm: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
    SecureCRT中 secureCRT使用VIM时对语法高亮
    openresty安装
    FlashBuilder 4.6序列号破解
  • 原文地址:https://www.cnblogs.com/gjmhome/p/15072574.html
Copyright © 2020-2023  润新知