2013年3月8日

1-2 字典序问题

摘要: 在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A由26个小写英文字母组成,即A={a,b...z}.该字母表产生的长序字符串是指定字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次.例如,a,b,ab,bc,xyz,等字符串是升序字符串.思想:排列组合问题考察一般情况下长度不超过k的升序字符串设以第i个字符打头的长度k的升序字符串个数位f(i,k),长度k的升序字符串总个数为g(k),则g(k)=累加f(i,k),i从1到26f(i,1)=1 g(1)=累加f(i,1),i从1到26f(i,2)=累加f(j,1)=26-i,j从i+1到26 阅读全文

posted @ 2013-03-08 22:47 愤怒的屎壳螂 阅读(228) 评论(0) 推荐(0) 编辑

1-1 统计数字问题

摘要: 最近学习算法设计与分析,老师推荐王晓东的计算机算法设计与分析,感觉真的很不错,但是第一到算法实现题就给难住了,题目如下(后来发现编程之美上也有这个题目,只是让求1出现的次数):一本书的页码从自然数1开始顺序编码直到自然数n。每个页码不包含多余的前导数字0.给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,。。。9.一下子能想到的笨方法就是遍历1到n之间的每个数字,统计每个页码数中每个数字出现的次数,这样非常慢。代码如下:#include <stdio.h>#include <time.h>int countInteger(int m){ int num 阅读全文

posted @ 2013-03-08 21:07 愤怒的屎壳螂 阅读(277) 评论(0) 推荐(0) 编辑

导航