题解 | #单词倒排#

单词倒排

http://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

import java.util.*;

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while(sc.hasNext()){
        String s = sc.nextLine();
        //去除语句左右两端空格
        int left = 0, right = s.length() - 1;
        while(left <= right && s.charAt(left) == ' ') left++;
        while(left <= right && s.charAt(right) == ' ') right--;
        //双端队列
        Deque<String> queue = new ArrayDeque<>();
        StringBuilder sb = new StringBuilder();
        while(left <= right){
            char c = s.charAt(left);
            //当sb不为空且当前字符不为字母,双端队列头部加入sb,并设sb为空                                     
            if(sb.length() != 0 && (!Character.isLetter(c))){
                queue.offerFirst(sb.toString());
                sb.setLength(0);                                   
            }else if(Character.isLetter(c)){  //当前字符为字母时加入sb
                sb.append(c);
            }
            left++;
        }
        //这里是加上最后一个单词,因为按照循环设定的第一个条件最后一个单词是没加上的
        queue.offerFirst(sb.toString());
        //利用join分隔元素输出
        System.out.println(String.join(" ", queue));
    }
}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-09 19:13
求你们别卷了的大学生...:你不骂他,我就要骂你了
今天你投了哪些公司?
点赞 评论 收藏
分享
愤怒的查理被升职:每个项目经历后面加关键成果:xxx, 项目经历要和岗位JD匹配,不是有多少项目经历都要写上的,挑选出是个岗位JD的,并且内容往岗位JD方面写,教育背景直接写 大学+专业+时间,一行就过去了。你是建筑投运营别人不看你本科建筑学的怎么样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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