字符串
desionwang
这个作者很懒,什么都没留下…
展开
-
最长重复子串问题
最长重复子串是指在一个字符串中找出最长的出现两次或两次以上的子串,例如abcdeabbcde,则bcde则是最长的重复子串。 最直观的解法是穷举所有的子串,和原串进行对比,从而选出最长的重复子串。 #include #include int commonLen(const char *str1, const char *str2){ int len = 0;原创 2013-07-24 17:29:55 · 1678 阅读 · 0 评论 -
字符串按单词(term)反转(C代码)
有一个英文句子,每个单词(term)之间用空格分隔,例如:I like English very much 要求反转后变为 much very English like I 上面的问题可以利用C语言中字符串已'\0'结尾,且'\0'是字符串打印的截止符,代码如下: #include #include void reverse(char *s){ int len = strlen(s)原创 2013-05-10 17:13:37 · 1918 阅读 · 0 评论 -
最长回文串算法
给定一个字符串找出最长回文字符串范围,例如abaabac,最长回文为abaaba 1、使用暴力的算法需要O(N^3)的复杂度,需要O(N^2)的复杂度去运算字符串所用的子串,然后使用O(N)去判断是否是回文串,从而定位最长的回文子串。 2、使用动态规划的思想进行求解,思路是利用子串从短到长进行逐步的动态规划求解,然后从短向长蔓延进行计算: 当i == j 时 肯定是长度为1 的回文串,dp[原创 2013-09-30 10:08:15 · 5525 阅读 · 0 评论 -
如何建立英文字符的哈希表
经常会遇到需要建立字符串哈希表的问题,例如strtok,或者删除指定字符串的中一些字符等等,可见的字符有256个,那么很容易想到建立一个哈希表,但是其中有一些技巧,可以节省空间,其实可以使用bitmap的形式实现,但是c语言中没有现成的东西,所以需要自己实现原创 2014-09-24 14:32:10 · 1545 阅读 · 0 评论