为什么我总是女性每天慢跑的好处很慢,有什么好的方法吗

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
做oj的 检索字符串的题 有几个检查点超时 求看看这个程序哪些部分可以改进节约时间跑的更快 没法用strlwr题目是这样的输入格式:
2 行。第1 行为一个字符串,其中只含字母,表示给定单词;第2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
输出格式:只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 0 开始);如果单词在文章中没有出现,则直接输出一个整数-1。
#include &stdio.h&
#include &string.h&
int main(void)
char word[11], arti[1000001];
gets(word);
gets(arti);
for (i = 0; word[i] != '\0'; i++) {
if (word[i] &= 'a')
word[i] -= 'a' - 'A';
for (i = 0; arti[i] != '\0'; i++) {
if (arti[i] &= 'a')
arti[i] -= 'a' - 'A';
strcat(word," ");
strcat(arti," ");
int p=0,m;
while(a=strstr(arti,word))
if(a==arti||*(a-1)==' ')
puts("-1");return 0;
printf("%d ",p);
printf("%d",m);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不看题目,就单单看你代码,应该是没用到什么算法,用的是最直接最普通的方法做,这样的方式在oj上某些测超时的点肯定过不了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
string searching的问题暴力求解太慢了,常用的算法有
下面是KMP算法,具体的原理还是去看《算法导论》吧
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
void KMPsearch(char *pat, char *txt);
void computerLPS(char *pat, int M, int *lps);
int main(int argc, char *argv[]) {
char *t = "test string searching text test";
char *s = "test";
KMPsearch(s, t);
void computerLPS(char *pat, int M, int *lps)
//len用来指示当前LPS的长度
lps[0] = 0; //当index为0时是epsilon,LPS长度是0
while ( i & M ) { //计算从1到m-1的LPS
//考虑abababca, 当i进行到5的时候, len=3此时时有最长的LPS aba
//而p[i] = p[5] = p[len] = b 所以更新LPS为ababab, len=4
if (pat[i] == pat[len]) {
lps[i++] =
//如果p[i] != p[len],那么此时的LPS长度要比到前一个index的LPS长度小
//将len更新为lps[len-1]
//这里的if不需要i++的原因是:
//要么len一直迭代到0(没有找到一个LPS是以p[i]结尾的),
//然后转入下个else分支
//要么找到一个以p[i]结尾的LPS,那么p[i] == p[len],转入上个分支
if (len != 0) len = lps[len-1];
else lps[i++] = 0;
void KMPsearch(char *pat, char *txt)
int M = strlen(pat);
int N = strlen(txt);
int *lps = (int *)malloc(M * sizeof(int));
computerLPS(pat, M, lps);
int i = 0;
int j = 0;
int count = 0;
int firstindex = -1;
printf("txt: %s\npattern: %s\n", txt, pat);
while (i & N) {
if (txt[i] == pat[j]) {i++; j++;} //如果匹配继续下一个
if (j == M ) {
printf("pattern found at index %d\n", i - M);
j = lps[j-1]; //右移pattern索引
if (firstindex == -1)
firstindex = i - M;
else if (i & N && txt[i] != pat[j]) {
if (j != 0) j = lps[j-1]; //右移pattern索引;
else i++; //没有lps
printf("occur times: %d\nfirstindex: %d\n", count, firstindex);
free(lps);
txt: test string searching text test
pattern: test
pattern found at index 0
pattern found at index 27
occur times: 2
firstindex: 0
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App手机使用微信很卡,反应很慢怎么办_百度经验
&&&&&&&&&手机软件手机使用微信很卡,反应很慢怎么办?听语音1234567
百度经验:有的手机使用微信后,会觉得整个手机都卡了,而且感觉手机反应很慢,微信完全是属于反应不过来的状态,这个时候我们只需要对微信软件进行清理一下会发现快很多,如果你也有同样的情况,那赶紧来试试吧!百度经验:手机微信百度经验:1进入我们的手机微信,点击“我”的界面2在“我”的界面之后,点击“设置”,进入设置界面3在“设置”界面之后,点击“聊天”,进聊天界面4在“聊天”界面之后,点击“清空聊天记录”,在弹出的提示框里面,再点击“清空”5清空的过程需要一段时间,大概需要3-5分钟的时间,耐心等待就行了6再耐心的等待之后,你在返回到“微信”界面,你会发现没有任何聊天记录了,这就是清理的效果,也就是为什么需要等待那么长时间的原因7当然还有一种方法,就是设置→通用→清理微信存储空间→查看微信储存空间,根据相应的提示清理相应的空间就行了,不过我还是建议使用第一种方法,清理的比较彻底8通过以上的步骤,你就会发现你手机使用微信没有以前那么卡,反应会快多了,教程到这里也就结束了,希望对你有帮助。END百度经验:如果本经验对你有帮助,请点击下方的“投票”,给予我一点支持和肯定,谢谢!你的支持将是我继续前进的动力,如果你对以上操作还存在疑问,可以咨询我解决!经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(49)已投票(49)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆非回享用户暂时不能发布经验“有得”&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验613815423热门杂志第1期你不知道的iPad技巧3557次分享第1期win7电脑那些事6218次分享第2期新人玩转百度经验1227次分享第1期Win8.1实用小技巧2541次分享第1期小白装大神1729次分享◆请扫描分享到朋友圈你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。}

我要回帖

更多关于 慢跑鞋哪个牌子好 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信