题解 | #单词倒排#

单词倒排

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

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
   Scanner in = new Scanner(System.in);
   String inString = in.nextLine();
   //示例String inString = "aade *  $afaefeafeafwafaefeafawf* fafaf";
   String result = calc(inString);
   System.out.println(result);
}

public static String calc(String str){
    // 匹配非字母的字符进行分割
    String[] words = str.split("[^A-Za-z]");
    StringBuilder result = new StringBuilder();

    // 逆序添加分割完的单词
    for (int i = words.length - 1; i >= 0; i--) {

        //去除多个连续空格字符串
        if("".equals(words[i])){
            continue;
        }

        //处理二十个字符以上字符串
        if(words[i].length()>20){
            List<String> list = new ArrayList<>();
            int length = 0;
            int temp = 0;
            while (length < words[i].length() ){
                length = (temp+20) < words[i].length()?temp+20:words[i].length();
                list.add(words[i].trim().substring(temp,length));
                temp = length;
            }

            for(int j=list.size()-1;j>-1;j--){
                result.append(list.get(j)).append(" ");
            }
        }else{
            result.append(words[i].trim()).append(" ");
        }
    }
    return result.toString().trim();
}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司6个岗位
点赞 评论 收藏
分享
10-29 15:51
嘉应学院 Java
后端转测开第一人:你把简历的学历改成北京交通大学 去海投1000份发现基本还是没面试
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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