快手[编程题] 字符串归一化

通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。

例如字符串"babcc"归一化后为"a1b2c2"

输入描述:

每个测试用例每行为一个字符串,以'\n'结尾,例如cccddecca

输出描述:

输出压缩后的字符串ac5d2e

输入例子1:

dabcab

输出例子1:

a2b2c1d1
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        Map map=new HashMap();
        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i);
            if(map.get(ch)==null){
                map.put(ch,1);
            }else{
                int cnt= (int) map.get(ch);
                map.put(ch,cnt+1);
            }
        }
        for(Object obj : map.entrySet()){
            Map.Entry<String,Integer> entry= (Map.Entry<String, Integer>) obj;
            System.out.print(String.valueOf(entry.getKey())+ entry.getValue());
        }
        in.close();
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mathor

最佳加法表达式

 给定n个1到9的数字,要求在数字之间最多添加m个加号(加号两边必须有数字,并且不能有两个或两个以上加号相邻),使得所得到的加法表达式的值最小,并输出该值。

19420
来自专栏java技术学习之道

java集合类详解

16160
来自专栏赵俊的Java专栏

二分查找

12210
来自专栏计算机视觉与深度学习基础

java在acm中大数运算教程

import java.io.*; import java.util.*; public class Main { public static void ...

22190
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-day05-代码题

Java基础-day05-代码题 1.在主方法里键盘录入n(1<=n<=9),并调用打印nn乘法表的方法。 ? 实现代码: package StudentJ...

38190
来自专栏前端说吧

JS-原生代码或方法实现特定效果总结(更新中...)

37460
来自专栏QQ音乐前端团队专栏

理解浮点数

相信大家在平常的 JavaScript 开发中,都有遇到过浮点数运算精度误差的问题。

73240
来自专栏vue学习

JS数据结构与算法-链表

一个链表的结构 现实中的举例说明就是火车。每节车厢是链表的元素,车厢间的连接就是指针:

13610
来自专栏恰童鞋骚年

数据结构基础温故-7.排序

排序(Sorting)是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为按关键字“有序”的记录序列。如何进行排序,特别是高效率地进行排序时计算...

10810
来自专栏desperate633

LintCode 最小子数组 && 最大子数组题目分析代码最大子数组

判断加与不加的情况,这道题的解法很巧妙,类似于背包问题。 每个数组的元素都有两种情况,加与不加,所以我们从第一个元素开始判断,包括第一个元素时,和不包括第一个...

7120

扫码关注云+社区

领取腾讯云代金券