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());
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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