字符串中重复字符的下标打印

使用LinkedHashMap来把字符串中每种字符的下标存储到对应的集合中。
利用LinkedHashMap的有序性(提取元素和添加元素的顺序一致)来直接生成答案

public static void printIndexes(String str){
        LinkedHashMap<Character, List<Integer>> IndexSet = new LinkedHashMap<>();

        for(int i=0;i<str.length();i++){
            Character c = str.charAt(i);
            if(!IndexSet.containsKey(c)){
                IndexSet.put(c, new ArrayList<Integer>());
            }
            IndexSet.get(c).add(i);
        }

        StringBuilder sb = new StringBuilder();
        for(char key:IndexSet.keySet()){
            List<Integer> values = IndexSet.get(key);
            if(values.size()>1){
                for(int i:values) {
                    sb.append(key+&quot;,&quot;+i+&quot;,&quot;);
                }
            }
        }
        sb.deleteCharAt(sb.length()-1);
        System.out.println(sb);
    }

     String str = &quot;afcacbcbcki&quot;;
     printIndexes(str);
     a,0,a,3,c,2,c,4,c,6,c,8,b,5,b,7
全部评论

相关推荐

09-08 17:17
同济大学 Java
狗不理fe:里面的人劝一句,别来虾,我们部门24校招生淘汰率30%,还有一些人说有一年保护期,不可能!!!
我的秋招日记
点赞 评论 收藏
分享
09-17 20:37
已编辑
长沙学院 Java
涂莱:学院本重心后移,金10银11,甚至金11银12,战线拉长一点,对于学院本来说秋招是个持久战,加油吧
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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