摘要: KMP算法 【题目】 给定两个字符串str和match,长度分别为N和M。实现一个算法,如果字符串str中含有字串match,则返回match在str中的开始位置,不含有则返回-1。 【举例】 str=“acbc”,match=“bc”。返回2。 str=“acbc”,match=“bcc”。返回-... 阅读全文
posted @ 2015-10-12 18:35 小小瓶盖 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 空指针是一个特殊的指针值,也是唯一一个对任何指针类型都合法的指针值。指针变量具有空指针值,表示它当时处于闲置状态,没有指向有意义的东西。空指针用0表示,C语言保证这个值不会是任何对象的地址。给指针值赋零则使它不再指向任何有意义的东西。为了提高程序的可读性,标准库定义了一个与0等价的符号常量NULL.... 阅读全文
posted @ 2015-10-11 21:53 小小瓶盖 阅读(185) 评论(0) 推荐(0) 编辑
摘要: if (str == null || str.length() == 0) { return 0; } char[] charArr = manacherString(str); int[] pArr = new int[charArr.length]; int index = -1; int pR... 阅读全文
posted @ 2015-10-11 21:48 小小瓶盖 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 求最大回文子串先对字符串 加特殊字符处理O(N) pR最多被更新2n次PArr[i]:以i为中心的最大回文子串的半径pR: 最右回文子串将要到达的位置 随时更新index:最右回文子串的中心 随时更新求PArr[i]的时候借助了前面的信息第一类:i被包括在pR里面则看与i对应的i1的回文子串是否被包... 阅读全文
posted @ 2015-10-11 21:26 小小瓶盖 阅读(82) 评论(0) 推荐(0) 编辑
摘要: string.h:C语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等,更详细的可以到include文件夹里面查看该文件。%c格式对应的是单个字符,%s格式对应的是字符串char * strcpy(char *strdest,const char *str... 阅读全文
posted @ 2015-10-11 11:18 小小瓶盖 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序的 方法执政 阅读全文
posted @ 2015-10-03 09:41 小小瓶盖 阅读(84) 评论(0) 推荐(0) 编辑
摘要: C++的重载(overload)与重写(override)的区别?成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。重写是指派生类函数重写基类函数,是C++的多态的表现,特征是:(1)不同的范围(分别位于派生类与基类);(... 阅读全文
posted @ 2015-09-16 17:09 小小瓶盖 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元素的相对顺序,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以shell排序是不稳定的。希尔排序属于插入类排序,是将整个有序序列分割成若干小的子序列分别进行插入排序。排序过程:先取一个正整数d1... 阅读全文
posted @ 2015-09-16 16:30 小小瓶盖 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 稳定的排序算法:归并,插入排序 不稳定的排序算法:选择排序 (5,7,5,3: 3和5交换之后,两个5的相对顺序发生了变化) shell排序 (1, 5, 5, 2,3, 7 : shell序列为(3, 1), 3的时候(1,5,7)(5,2,3)), 在间隔>1的时候会出现不稳定 快速排序 (... 阅读全文
posted @ 2015-09-16 16:03 小小瓶盖 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 排序算法不稳定的含义是: 在排序之前,有两个数相等. 但是在排序结束之后,它们两个有可能改变顺序.比如说: 在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面.这个时候,我们说这种算法是不稳定的.那么,快速排序为什么不稳定呢?我们来看看快速排序的过程:(还是借用之前的那... 阅读全文
posted @ 2015-09-16 12:06 小小瓶盖 阅读(286) 评论(0) 推荐(0) 编辑