字符串中重复字符的下标打印
使用LinkedHashMap来把字符串中每种字符的下标存储到对应的集合中。
利用LinkedHashMap的有序性(提取元素和添加元素的顺序一致)来直接生成答案
public static void printIndexes(String str){
LinkedHashMap> IndexSet = new LinkedHashMap<>();
for(int i=0;i Character c = str.charAt(i);
if(!IndexSet.containsKey(c)){
IndexSet.put(c, new ArrayList());
}
IndexSet.get(c).add(i);
}
StringBuilder sb = new StringBuilder();
for(char key:IndexSet.keySet()){
List values = IndexSet.get(key);
if(values.size()>1){
for(int i:values) {
sb.append(key+","+i+",");
}
}
}
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
}
String str = "afcacbcbcki";
printIndexes(str);
a,0,a,3,c,2,c,4,c,6,c,8,b,5,b,7
利用LinkedHashMap的有序性(提取元素和添加元素的顺序一致)来直接生成答案
public static void printIndexes(String str){
LinkedHashMap
for(int i=0;i
if(!IndexSet.containsKey(c)){
IndexSet.put(c, new ArrayList
}
IndexSet.get(c).add(i);
}
StringBuilder sb = new StringBuilder();
for(char key:IndexSet.keySet()){
List
if(values.size()>1){
for(int i:values) {
sb.append(key+","+i+",");
}
}
}
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
}
String str = "afcacbcbcki";
printIndexes(str);
a,0,a,3,c,2,c,4,c,6,c,8,b,5,b,7
全部评论
相关推荐
09-26 16:43
电子科技大学 深度学习 点赞 评论 收藏
分享
09-30 09:13
大连理工大学 建模仿真工程师 点赞 评论 收藏
分享