java - 我怎样才能被包容的Letters成?
问题描述
字符串输入="4,8,222cd,77,77A";
我对值进行了排序。例如,我对 [3-6] 范围内的 3、4、5、6 个连续值进行了排序。我已经以这种格式完成了连续数字“[]”,但我无法制作字母。排序列表不应被打乱。
解决方案
一般的想法是首先扩展输入中的所有声明,然后对它们进行排序,然后再次发出它们,同时在遇到连续项目时压缩范围。
展开所有声明:571-573K(如果我理解正确的话)将展开为三个项目 571K、572K、573K。大多数简单的声明只是扩展到它们自己。
排序:您需要一个对数字和字母都敏感的排序函数。它可能必须分解输入字符串并以数字方式组合数字部分,但按字母顺序组合字母部分。
Emit:遍历排序列表并发出每个项目;但是,如果下一个项目与当前项目相邻,则将其与当前项目合并。这可能需要您创建一个临时的输出列表,并延迟实际输出,直到您浏览完原始列表。
推荐阅读
- domain-driven-design - 订单和库存 DDD - 应该在哪里处理分配/预订?
- c# - 使用 TrackBar 播放音乐时断断续续
- python - 我从 Python 中的 Tkinter 收到的奇怪错误
- sql - 在更新之前通过修改数据从另外两个更新主表
- java - 为下拉菜单创建 Angular 服务
- nativescript - 如何使用 NativeScript 切换 UITabBar 半透明属性?
- mongodb - MongoDB:按索引删除数组元素,操作顺序?
- javascript - 汇总具有相同属性名称的对象的值
- c# - 如何测试类型是否可实例化?
- ios - 如何在 iOS 应用程序中有效地实现跳过逻辑分支?