|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码 |
|