马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天做到一道题,就是比较相邻字符是否相等,例如,“ccccccbc”中cb和bc不相等,结果输出为2.
我就知道不会那么简单,主函数已经定义好了,test里的函数是我自己写的,它要求的是运行时间在3s以内,难道比较不应该用循环么?还是动态分配的时候空间太大?内存好像也有150M的限制。
我用codeblock运行出来总是3.5s+。这种优化问题,一般从哪些方面考虑呢?望指点一二,谢谢!
#include <stdio.h>
#include <stdlib.h>
int test(char* s)
{
int i,count=0;
for(i=0;s[i+1]!='\0';i++)
{
if(s[i]=='\n')
break;
if(s[i]!=s[i+1])
{
count++;
}
}
return count;
}
int main()
{
int res;
char* _s;
_s=(char *)malloc(1000 * sizeof(char));
scanf("\n%[^\n]",_s);
res=test(_s);
printf("%d\n",res);
return 0;
}
|