
字符串
文章平均质量分 67
liu_qiqi
这个作者很懒,什么都没留下…
展开
-
KMP模式匹配算法的两点理解
KMP模式匹配算法中,核心就在于next[j]数组的赋值。这里字符串数组均从下标1开始,下标0,用于存储字符串长度。个人理解,next[j]的值表示,从1到j-1的位置上,有多少个匹配的字符串(包括一个字符)+1。其中定义,当j=1,next[j]=0;当j不等1,查看从1到j-1位置的字符,进行比较。较简便的方法为,如a1a2a3a4a5,如只有一位,则比较a1与a5是否相等,如果二位相等,原创 2012-12-09 23:08:19 · 411 阅读 · 0 评论 -
给定字符串A和B,输出A和B中的最大公共子串。
从网上down的例子,现在简要分析下。复杂度比较高,还是挺巧妙的。本人也没有想到更好的解决方法:1.用到了strstr函数,该函数再string.h头文件中有定义,竟然之前没有见过。哎。。该函数char *strstr(char *str1, char *str2)的意思就是从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回nu原创 2013-06-23 21:54:49 · 5536 阅读 · 0 评论 -
利用hashtable思想,保存在一个字符串中找到第一个只出现一次的字符
编程思想:利用hashtable的思想,将输入的字符,映射到一个哈希表中,hash函数为:对输入字符的ASCII码求模运算,映射到在hashtable中的具体下标。通过对hashtable的初始化,均为‘\0’,如果输入的字符,映射到hashtable的相应位置,其内容不是‘\0’,则表示已经有字符放置,则该字符一定不是只出现一次。 #include using namespace s原创 2013-01-05 23:11:24 · 573 阅读 · 0 评论 -
输出一个字符串中表示数字字符中的最长子串
输出一个字符串中表示数字字符的最长子串(比较简单)注意:使用指针做参数,可在main中返回 int continumax(char *outputstr, char *inputstr){char *in = inputstr, *out = outputstr, *temp, *final;//temp在这里的作用是很大的。它始终直线当前比较的数字字符串。int coun原创 2013-06-22 12:15:56 · 1040 阅读 · 0 评论 -
利用hash表思想,实现查找到第一个在字符串中出现的字符
利用hash表的存储思想,先将表初始化,然后对表的内容存储值。比较特别的是,存入的值是输入字符的出现次数(也就是hash表中的冲突出现次数)。这里的hash函数,就是相当于输入字符的ASCII。输入字符相同,在address处就冲突,统计下来冲突次数。当冲突次数为1时,表示,此字符仅一次出现。问题解决。 #include using namespace std;#define MA原创 2013-01-06 21:20:37 · 785 阅读 · 0 评论