点我顶贴
收藏
删除
水是水,可是C++竟然超时了!
代码如下:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a,b;
int e,s=0;
cin >> a >> b ;
e=b.find(a);
while(e>=0)
{
++s;
b.erase(e,(a.size()));
e=b.find(a);
}
cout << s ;
return 0;
}
代码很简单
#1 蔡旭昀@2013-01-31 19:10:00
29229
回复
删除
29248
回复
删除
B串长度最大500*1024...
find和erase操作一次都是O(n)
操作最大次数可能是n次..
复杂度O(n2) 当然超时..
#3 蔡旭昀@2013-02-06 03:26:00
29298
回复
删除
#4 蔡旭昀@2013-05-05 03:01:00
29983
回复
删除
up
查看更多回复
拥有 RQNOJ 账号,您可以:
- 查看海量题库,并提交您的代码
- 参加比赛,证明实力
- 与大家讨论,解答疑问,分享心得
提交回复