字符串的压缩,求解答

lwjppz 2019-11-28 12:25:15
如果一串数据有较多的重复,我们可以记录重复的次数。例如:对于AAAAAAAAAABCBCBCBCBCBCAAAAADEFDEFDEFDEF.我们可以这么写:10A6BC5A4DEF. 原来39个字符,压缩后就是12个字符。请你编程把所给的信息进行压缩。 如果连续的子串没有重复,这串就计为1。例如:ABCDEF,压缩后是1ABCDEF. 输入 AAAAAAAAAABCBCBCBCBCBCAAAAADEFDEFDEFDEF NMNMNOOOPPPOOOPPP DFGHJ HELLO 输出 10A6BC5A4DEF 2NM1N3O3P3O3P 1DFGHJ 1HE2L1O 要咋办?
...全文
146 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwjppz 2019-11-28
  • 打赏
  • 举报
回复
这个对于连续的字符可以,不过对于那种比如ABABAB要转换成3AB,这样的就不行了
亦夜 2019-11-28
  • 打赏
  • 举报
回复
public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String inPut = scanner.nextLine();
        Map<String, Integer> map = new LinkedHashMap();
        for(int i = 0; i < inPut.length(); i++){
            String key = String.valueOf(inPut.charAt(i));
            if(map.containsKey(key)){
                map.put(key, map.get(key)+1);
            }else{
                map.put(key, 1);
            }
        }
        Set<String> keys = map.keySet();
        for(String s : keys){
            System.out.print(map.get(s) + s);
        }
    }

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧