2012年8月15日
摘要: 一个单词如果交换其所含字母顺序,得到的单词称为兄弟单词,例如mary和army是兄弟单词,即所含字母是一样的,只是字母顺序不同,用户输入一个单词,要求在一个字典中找出该单词的所有兄弟单词,并输出。给出相应的数据结构及算法。要求时间和空间复杂度尽可能低目前思想:struct {char data;int n};根据数学定理:任何一个大于1的自然数N,都可以唯一分解成有限个质数的乘积 N=(P_1^a1)*(P_2^a2)......(P_n^an) , 这里P_1<P_2<...<P_n是质数,且唯一。例如a=2 b=3 c=5 d=7 e=11...f(abcd)=2*3*5 阅读全文
posted @ 2012-08-15 23:13 ZimZz 阅读(2867) 评论(0) 推荐(0) 编辑
摘要: 如果一个数是2的n次方,则化成二进制数肯定是 1000...000 的形式,那么 假设这个数是x,则 x-1 肯定是 0111...111 的形式,位数比x少一位那么 x & (x-1) 则有1000...000 &0111...1110000...000所以当 x & (x-1) = 0时,说明x是2的n次方 阅读全文
posted @ 2012-08-15 23:03 ZimZz 阅读(1735) 评论(0) 推荐(0) 编辑
摘要: 使用两个指针,每次前进一个元素,第一个指针前进到第m+1个元素的时候,第二个指针开始前进,此时第二个指针指向第1个元素,当第一个指针前进到链表尾的时候,第二个指针指向的元素就是倒数第m个元素 阅读全文
posted @ 2012-08-15 21:53 ZimZz 阅读(361) 评论(2) 推荐(0) 编辑
摘要: 判断是否有环和查找中间节点使用两个指针,p1每次前进1个节点,p2每次前进2个节点,如果链表有环,则最后两个指针指向的节点将会重合,若无环,则p2最后将走到链表尾,当p2走到链表尾时,p1指向的节点就是中间节点检测环的入口当p1p2重合以后,让p2回到表头,步长设为1重新开始走,当p1p2再次重合时,重合点即为环入口证明:如图表头到环入口长度为l1,环的长度为l2,环的入口为h点,p2p1第一次重合点为h'点,设hh'长度为l3,则有在第一次重合时p1走过的路程 = l1 + l3p2走过的路程 = l1 + l3 + n * l2 = 2 * (l1+l3)=> l2 阅读全文
posted @ 2012-08-15 21:49 ZimZz 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 最近做一个问题,去除html中代码的JS脚本,代码如下 1 <?php 2 $text = <<<EOF 3 ilove you 4 <scrip></sss> 5 <script> ok </script> 6 kkyz <dd>m,dfd 7 <script> 8 sdfsdf 9 </script>10 <script> no </script>11 ook12 EOF;13 14 echo "orginal text: \n\n" . 阅读全文
posted @ 2012-08-15 16:28 ZimZz 阅读(2602) 评论(0) 推荐(0) 编辑
摘要: 考试系统 阅读全文
posted @ 2012-08-15 13:30 ZimZz 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用。使用索引、使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的。 任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。 如同其它学科,优化查询性能很大程度上决定于开发者的直觉。幸运的是,像MySQL这样的数据库自带有一些协助工具。本文简要讨论诸多工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。 #1: 使用索引 MySQL允许对数据库... 阅读全文
posted @ 2012-08-15 10:10 ZimZz 阅读(327) 评论(0) 推荐(0) 编辑