摘要: 求一个串中最长的串,使得该串中出现的不同的字母数最大为m,求该子串的最大长度。搞两个指针Pi,Pj,初始化Pi=0,Pj=1,然后每次Pj要移动的时候,看Pi到Pj之间的不同的字母数是否为m,如果为m的话,就移动Pi指针,直到不为m,然后把,Pj向右移动一下,这样的串是肯定存在的,即任意一个长度为1的子串都是符合条件的,所以PiPj,所以复杂度为O(n),然后统计Pi,Pj之间的不同的字母数,可以用数组来统计,做到复杂度为O(1)。总的复杂度就为O(n),用队列来维护这个过程。代码 阅读全文
posted @ 2010-12-31 17:38 litstrong 阅读(273) 评论(0) 推荐(0)
摘要: 数根的扩展版,把一个十进制的数,写成按b进制形式的十进制数,一直下去,直到在[0,10)之间。有a(n)*10^n+a(n-1)*10^(n-1)...+a(0) = a(n)*b^n+a(n-1)*b^(n-1)...+a(0) mod (10 - b)然后答案就是(n - 10) % (10 - b) + b了。代码 阅读全文
posted @ 2010-12-31 17:23 litstrong 阅读(233) 评论(0) 推荐(0)