算法交流:分享我的一个算法,实现项目需求
昨天一个大三的师姐和我探讨了一个有关字符串解析的问题,我觉得比较有意思,于是今天下午抽出
20分钟实现了一下,因为这个项目是一个学院的选课系统,为了导数据方便呢,他们采用了之前选课系统的数据库。
其实这类web项目一般难度不会很大,但是这个早期的数据库设计的比较个性,其中记录上课时间的数据,在数据库
里竟然使用的是一个20位01串。因为我们学校一个学期最长是20周的课时。1代表这周有课,0代表没有课,最后要
解析这个字符串,把字符串解析成一个通俗的话,例如:数据库里存的是"00101111110111101110",那么通过这个
程序要转换成“3周 5-10周 12-15周 17-19周”。其实还是比较有意思的。当然我举的这个例子是比较夸张,因为
学校不可能这样排课。这样排课学生不就崩溃了。这么散乱。一般也就是00000000111111111111这种的,或者
11111111111100000000,但是既然实现一个算法,当然就要具有通用性,要把所有情况的考虑到。于是便有了
这个项目需求,因为这个项目使用java来搞,所以俺就以java为例,写一下实现。之前师姐用的是一些面向过程语言里
经常使用的一些数据类型,例如int,char,char[],String[]。既然用java,俺就不用这些东东了,用的也不方便,
就使用Integer,String,List<Integer>,List<String>。不过都说StringBuilder比较快,但是我还是没有用这个。
因为不熟,考虑到线程同步,也许有人会用StringBuffer,不过还是需要一个synchronized()来搞一下才放心。
本着实现为先,步步优化的原则,我就用最顺手的String了。一个算法的好坏,衡量是多方面的,代码精简,代码易读,
命名规范,灵活多变。这些都是衡量标准。但是有时要有所取舍。废话侃了那么多,如果有兴趣的朋友可以,试着用您
最擅长的语言或脚本写一写,或者考验一下自己的速度,或者追求一下最高的执行效率,实现一下,我觉得还是挺有意
思的。晚辈在这里请教各位,交流一下实现方案。如果有用java实现更高效的算法,我就不用现在我写的这个了,斗胆
发到首页,渴望交流学习。
------------------------------------------------------------------------------
我的实现:(就当抛砖引玉了)

谢谢。
作者:Steven(Steven's Think out)
出处:http://shiyangxt.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2009-04-10 17:04 俱正Steven 阅读(3999) 评论(45) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异