算法
rushman
这个作者很懒,什么都没留下…
展开
-
简单?复杂?——连续出现次数最多的子串(1)
问题的提出:前几天,网友提出了一个问题:找出一段文本中连续出现次数最多的子串。据说,这是微软的面试题。乍一看,这个问题有点无从下手。难不成要列出所有可能的子串一个一个搜索计数?我们还是先寻找一些规律。最基本的,长度为 n 的字符串 S 多次连续出现 S1 S2 S3……,则每次出现的起始位置P(S1) P(S2) P(S3)……,两两之间的差是相等的:P(S1) - P(S2) =原创 2008-04-29 21:50:00 · 3742 阅读 · 2 评论 -
出现次数最多的子字符串?——其实没那么复杂
【有兴趣的网友可以参阅我的另一篇文章《 一次遍历找出“出现次数最多的子串” 》——对本文算法的改进。】问题描述:求一个字符串中出现次数最多的子串,子串的长度可以是 1 。分析问题:乍一看,好像无处下手。简单的穷举效率太低,随着输入的文本增长,时间复杂度和空间复杂度就会火箭般窜升至无法接受的地步。我们需要寻找规律。假设存在一个长度为 N 的子串 S 出现的次数最多。那么它具有哪些特点原创 2008-04-24 20:52:00 · 8429 阅读 · 16 评论 -
一次遍历找出“出现次数最多的子串”
昨天,我写了一篇关于求出现次数最多的子字符串的算法及实现。网友 yy8354 对原文所述算法的效率提出置疑,这使我有了更进一步的想法。原文,对出现次数最多的子串作出了一些归纳(详情见 原文)。然而,进一步的思考,我们会有更多的发现。设 RS 为所有符合条件的子串的集合。则在结果集 RS 中,必然存一个子集 SS,且 SS 满足:SS 中的所有字符串都不是 OS* 中任一字符串的子串原创 2008-04-25 19:14:00 · 3309 阅读 · 2 评论 -
UTF-8 字符统计
最近写程序时需要用到一个功能:根据一个UTF-8字符串判断其需要的显示空间(固定宽度)。这样,就需要对字符串中包含的ANSI字符和UTF-8字符(中文)进行统计。针对这种情况,写了一个函数尚觉满意,发布于此,供大家参考。 /**** str_utf8_summary: get the count of chars classified by ANSI & UTF-8. st原创 2010-03-13 01:08:00 · 942 阅读 · 0 评论