07 2012 档案
摘要:Lucene.NetLucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,是一个Library.你也可以把它理解为一个将索引,搜索功能封装的很好的一套简单易用的API(提供了完整的查询引擎和索引引擎)。利用这套API你可以做很多有关搜索的事情,而且很方便.。开发人员可以基于Lucene.net实现全文检索的功能。注意:Lucene.Net只能对文本信息进行检索。如果不是文本信息,要转换为文本信息,比如要检索Excel文件,就要用NPOI把Excel读取成字符串,然后把字符串扔给Lucene.Net。Lu
阅读全文
摘要:开篇平常开发时,由于冗余代码过多,程序员做重复的工作过多势必会影响开发效率。倘若对重复性代码简单的复制、粘贴,虽然也能节省时间,但也需仔细一步步替换,这无疑也是一件费力的事。这时我们急需代码生成工具,根据一套Template快速生成我们需要的代码。代码生成器原理简单,完全可以开发一套适合自己的代码生成器,一个最简单的代码生成器,有几点你需要关注下:查询系统视图:INFORMATION_SCHEMA.TABLES、INFORMATION_SCHEMA.COLUMNS 可以获得数据库中表、列的相关信息。字符串的拼接:StringBuilder的使用,其AppendLine()自动换行。将字符串写入
阅读全文
摘要:看了博客园里一篇文章《一道腾讯前端试题,谁来试试身手》,正好以前了解过位图法,确实不错。位图法适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在,如可标记1为存在,0为不存在。 位图法网上资料比较少,我在百度百科找到了对它的描述位图法比较适合于如下这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数,遇到几就给新数组的第几位置上1,如遇到 5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着重复。这种给新数组初始化时置零其后置一的做法类似于位图的处理方.
阅读全文
摘要:问题描述Problem Description有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。Input输入含有一些选手群,每群选手都以一个整数n(n<1000)开头,后跟n对选手的比赛结果,比赛结果以一对选手名字(中间隔一空格)表示,前者战胜后者。如果n为
阅读全文
摘要:问题描述find your present (2)Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/1024 K (Java/Others)Total Submission(s): 9613Accepted Submission(s): 3534Problem DescriptionIn the new year party, everybody will get a "special present".Now it's your turn to get your special present, a
阅读全文
摘要:小明A+BTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15548Accepted Submission(s): 7306Problem Description小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算.对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于100, 那么小明也仅保留计算结果的最后两位.例如, 对于小明来说:1) 1234和34是相等的2
阅读全文
摘要:Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7500Accepted Submission(s): 4427Problem DescriptionSky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。Sky非常喜欢这
阅读全文
摘要:上一篇博客中《两天完成一个小型工程报价系统》,许多朋友向我讨源码。其实我之后没发了,确实那种三层架构没什么意思,只是我个人的孤芳自赏,很多的处理都不是很成熟。所以我重新架构了一番,以一个小例子来阐述我的架构模式,当然,这和企业级的架构还是差距很大,不过,还是值得一读。不积硅步,无以至江海,只有从小细节慢慢领悟,步步为营,才能设计出优秀的企业级架构。 重构后的架构图:解决方案里项目设计:数据库访问层接口设计:IBaseDaoRepository模式这儿使用了Repository模式,抽象出一个公共的接口IBaseDao,IBaseDao接口中定义了一系列契约(CRUD),不管我的我数据访问用了.
阅读全文
摘要:这篇博文我不讲委托和事件的概念,因为大段的文字概念没有任何意义。具体想了解,委托和事件的概念可以MSDN查阅。我这篇文章的主题思路是委托如何一步步进化成事件:何为委托--->委托来实现事件--->用方法对委托的封装--->Event的add,remove方法的引入--->标准事件写法--->反编译探究竟。用几个例子以及Reflector反编译探究委托和事件的关系。不足之处,还望多多指教...何为委托:首先,委托是一种类型,是一种定义了方法签名的类型。委托可以理解为函数指针(安全),并且委托约束了方法的签名(由返回类型和参数组成),所以实例化委托时,可以将其实例与任
阅读全文