-2
我一直在解决SPOJ上的this问题。使用在线评审时遇到的最常见问题之一是Runtime Error
。你永远不知道哪个案例导致Segmentation fault
。请帮我弄清楚为什么下面的代码对应于Runtime Error
或Segmentation Fault
,即使我已确保每个可能的情况在我的linux gcc上正常运行。在Online Judge上运行时遇到运行时错误
#include <iostream>
#include <math.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <vector>
using namespace std;
int main()
{
int t,i;
cin >> t;
string s;
vector<int> A;
while(t--)
{
cin >> s;
int n=s.size();
int temp;
if (n!=1)
{
for(i=0;i<s.size();i++)
{
A.push_back(s.at(i)-'0');
}
if(n%2!=0)
{ i = (n-1)/2;
while(A[i-1]==A[n-i])
i--;
i--;
}
else
{ i=n/2-1;
while(A[i]==A[n-1-i])
i-- ;
}
if (A[i]<A[n-i-1])
{
if ((n%2)!=0)
{
A[n/2] = A[n/2] + 1;
A[n-i-1] = A[i];
}
else
{
A[n/2-1] = A[n/2-1]+1;
A[n/2] = A[n/2-1];
A[n-i-1] = A[i];
}
}
else
A[n-i-1] = A[i];
while(i--)
A[n-i-1] = A[i];
while(!(A.empty()))
{
printf("%d",A.back());
A.pop_back();
}
}
else
cout << s;
}
}
请缩进您的代码。 –
嗨@VaibhavBajaj,完成! –
你会收到错误文本吗?如果是这样,请张贴。 – donjuedo