-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