Java写题解的第1天 | #句子逆序#

句子逆序

http://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3

Java写题解的第1天:句子逆序

题目限定输入只有字母和空格,因此只需要从左往右遍历,判断是否有空格字符即可;
如果不限定字母和空格,比如还有数字或者其他字符作为分割符,只要使用Character.isLetter(c) 判断即可;
由于需要倒序输出,每个单词之间只能有一个空格,且最后不能有空格,因此使用栈来进行存储和输出;

import java.io.*;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] cs = br.readLine().toCharArray();
        br.close();

        Stack<String> stack = new Stack<>();
        int left = 0, right = 0;
        while (left < cs.length) {
            if (cs[left] == ' ') {
                left++;
            } else {
                right = left;
                StringBuilder sb = new StringBuilder();
                while (right < cs.length && cs[right] != ' ') {
                    sb.append(cs[right]);
                    right++;
                }
                stack.push(sb.toString());
                stack.push(" ");
                left = right + 1;
            }
        }

        stack.pop();
        while (!stack.isEmpty()) {
            System.out.print(stack.pop());
        }
    }
}
全部评论

相关推荐

07-11 18:47
已编辑
门头沟学院 后端
在看数据的孤勇者很想...:如果你是在校硕士,六段大厂实习一眼假,假设一段实习两个月,硕一暑假,硕一寒假,大四暑假,大四寒假,大三寒假,大三暑假,哥们,你怎么卷吗,寒假基本两个月在企业实习不现实,所以你可能是日常实习,但是你不可能每段日常实习都是两个月吧,他们日常实习都是三个月起步这样,所以你往前推一下,一段日常实习,就三个月,敢情你大学生课都不上,全在实习吗?你自己问问自己,六段大厂实习,一点没学到,自己说出来会不会笑呀,不管学历,但凡有一段大厂实习都很牛逼了
投递米哈游等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务