随笔分类 -  字符串

摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1451今天下午的比赛题,该说自己理解能力太弱还是题目描述有歧义,比赛一开始我就找到了这道题,读完题感觉很容易,于是就用栈模拟了一遍,结果WA,又重新理解了一遍题,感觉应该没什么问题,将各种可能的想了一遍,改完提交还是WA,然后再改,最后终于想不出来还有什么情况了,于是重新读题,还是没弄懂要求输出的是最长合法子串的个数,我一直输出的是合法子串的总数,其实中间我曾想过有可能是让输出最长合法子串的个数,但是不确定,而且题目中给出的是“以及合法子串的个 阅读全文
posted @ 2013-01-26 18:55 Misty_1 阅读(270) 评论(0) 推荐(0)
摘要:一道KMP的题,题目大意是:给你一串字符s,求其前n位重复的次数大于一的所有子串。比如aaa,前两位是aa,所以重复的次数为2,前三位aaa重复的次数为3。这题主要考察KMP算法中的next数组的灵活使用,next函数看过KMP的都知道,他是通过一个串的自匹配求出来的,next[i]一般认为是串s中前i个与后i个字符相等,并且这个i是满足条件的最大的。而通过求next的方法我们轻而易举的知道最大位移length=len(s)-next[len],所以要求前n位的最大重复字串,只要求出next数组就行了。由于本人刚刚看懂KMP的next数组原理,所以本题做起来还是感到有点吃力,呵呵,继续研究KM 阅读全文
posted @ 2012-04-24 20:58 Misty_1 阅读(162) 评论(0) 推荐(0)
摘要:题目大意是:给你几个DNA序列,让你找到最长的公共子序列。这题的数据量不大,可以用暴搜,就是用到了一个字符串处理函数strstr,它是查找子串在字符串中的位子的,返回值为子串首字母的下标。记下这题留待以后参考.代码:#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ int n,m,i,j,k,sum; char str[14][65]; char s[65],st[65]; scanf("%d",&n); while(n--) { scanf ( 阅读全文
posted @ 2012-04-23 19:58 Misty_1 阅读(181) 评论(0) 推荐(0)