题解 | #单词倒排#

单词倒排

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();
}

}

全部评论

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
神哥不得了:首先我就是在成都,成都的互联网格外的卷,如果是凭现在的简历的话很难找到大厂,建议再添加一个高质量的项目上去,另外专业技能的话最好是超过每一条的一半
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务