
获得徽章 0
赞了这篇沸点
赞了这篇沸点
周六一个人去了趟安山古道,看别人分享的人挺多的,以为挺简单的。结果走大环线发现一路上都没遇到几个人,而且从建国村开始全程都是山路,坡度还大,走到怀疑人生。幸亏路上遇到了一个徒步的大哥,要不然感觉天黑了都走不出来。以后做攻略得多查查了。
![[泣不成声]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_40.348108b.png)
5
4
赞了这篇沸点
#青训营笔记创作活动#
问题:字符串字符类型排序问题
解题思路:
根据特定的规则对含有字母、数字和问号的字符串进行重排序。目标是在不改变原字符串中问号位置的情况下,对其中的字母按字典序从小到大排序,同时对数字按从大到小排序。
1.分离元素
创建两个容器:letterList 和 digitList,分别用来存放原字符串中的字母和数字。这里选择ArrayList类型,因为Collections.sort()可直接对此类进行排序,且支持灵活的元素访问及插入。
2.遍历并分类原字符串
遍历原字符串的每个字符,如果是字母则加入letterList,如果是数字则转为整数形式存入digitList。注意,由于需要反转数字顺序,所以直接采用ArrayList<Integer>,便于后续的逆序排序。
3.排序
字母排序:使用Collections.sort(letterList),自动实现字典序的升序排列。
数字排序:先进行自然排序,然后利用Collections.reverse(digitList)或Collections.sort(digitList, Collections.reverseOrder()),使其变为从大到小的顺序。
4.重建字符串
初始化一个新的StringBuilder实例result,其初始值为原字符串。
再次遍历原字符串,对于每个字符,如果是字母或数字,则从相应的列表中取出已排序好的下一个字符替换原位置上的字符。
5.总结
该过程巧妙结合了数据结构和算法的应用,有效地解决了题目中提出的要求,既能处理不同类型的字符,又能维护原有的问号位置不变。
问题:字符串字符类型排序问题
解题思路:
根据特定的规则对含有字母、数字和问号的字符串进行重排序。目标是在不改变原字符串中问号位置的情况下,对其中的字母按字典序从小到大排序,同时对数字按从大到小排序。
1.分离元素
创建两个容器:letterList 和 digitList,分别用来存放原字符串中的字母和数字。这里选择ArrayList类型,因为Collections.sort()可直接对此类进行排序,且支持灵活的元素访问及插入。
2.遍历并分类原字符串
遍历原字符串的每个字符,如果是字母则加入letterList,如果是数字则转为整数形式存入digitList。注意,由于需要反转数字顺序,所以直接采用ArrayList<Integer>,便于后续的逆序排序。
3.排序
字母排序:使用Collections.sort(letterList),自动实现字典序的升序排列。
数字排序:先进行自然排序,然后利用Collections.reverse(digitList)或Collections.sort(digitList, Collections.reverseOrder()),使其变为从大到小的顺序。
4.重建字符串
初始化一个新的StringBuilder实例result,其初始值为原字符串。
再次遍历原字符串,对于每个字符,如果是字母或数字,则从相应的列表中取出已排序好的下一个字符替换原位置上的字符。
5.总结
该过程巧妙结合了数据结构和算法的应用,有效地解决了题目中提出的要求,既能处理不同类型的字符,又能维护原有的问号位置不变。
展开
评论
1