POJ1002,答案正确,提交出现RuntimeError,不清楚原因。

hys2219258 2016-08-28 07:43:09
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct node
{
string str;
int times; //记录出现次数,避免重复输出。
int judge;
}number[10000];

bool cmp(node a,node b)
{
return a.str<b.str;
}

int main()
{
int n;
cin>>n;
for(int i=0;i<n;++i)
{
cin>>number[i].str;
}
for(int i=0;i<n;++i)
{
for(string::iterator iter=number[i].str.begin();iter!=number[i].str.end();++iter)
{
if(*iter=='A' || *iter=='B' || *iter=='C')
*iter='2';
if(*iter=='D' || *iter=='E' || *iter=='F')
*iter='3';
if(*iter=='G' || *iter=='H' || *iter=='I')
*iter='4';
if(*iter=='J' || *iter=='K' || *iter=='L')
*iter='5';
if(*iter=='M' || *iter=='N' || *iter=='O')
*iter='6';
if(*iter=='P' || *iter=='R' || *iter=='S')
*iter='7';
if(*iter=='T' || *iter=='U' || *iter=='V')
*iter='8';
if(*iter=='W' || *iter=='X' || *iter=='Y')
*iter='9';
if(*iter=='-')
iter=number[i].str.erase(iter)-1;
}
}
int flag=0;
for(int i=0;i<n-1;++i)
{
for(int j=i+1;j<n;++j)
{
if(number[i].str==number[j].str && number[j].judge==0)
{
++number[i].times;
number[j].judge=1;
flag=1;
}
}
}
sort(number,number+n,cmp);
for(int i=0;i<n;++i)
{
string::iterator iter=number[i].str.begin()+3;
if(number[i].judge==0)
number[i].str.insert(iter,'-');
}
if(flag==1)
{
for(int i=0;i<n;++i)
{
if(number[i].times!=0 && number[i].judge==0)
cout<<number[i].str<<" "<<number[i].times+1<<endl;
}
}
else
{
cout<<"No duplicates. "<<endl;
}
return 0;
}

输出的结果是正确的但是出现RuntimeError,刚开始刷OJ,也不清楚是什么原因,麻烦大神们帮我分析一下出现这个错误的原因以及解决办法,之后的刷题过程中好避免,感激不尽~
...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-08-29
  • 打赏
  • 举报
回复
string是对象,不是一段内存;不适合放在struct中。
赵4老师 2016-08-29
  • 打赏
  • 举报
回复
边界条件 输入输出格式 ……
idzeta 2016-08-29
  • 打赏
  • 举报
回复
确定迭代器+3、-1安全? 另外效率上,cmp函数按值传递参数……不用引用?

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧