先打出我的寫法:
#include<iostream>
#include<string>
using namespace std;
int main() {
string a;
int count=0;
while(cin >> a){
if (a.size()%2==1)
{
for (int k=0 ; k<=(a.size()-3)/2 ; k++)
{
if (a[k]==a[a.size()-k-1])
count++;
}
if (count==(a.size()-1)/2)
cout<<"yes";
else
cout<<"no";
}
if (a.size()%2==0)
{
for (int k=0 ; k<=a.size()/2-1 ; k++)
{
if (a[k]==a[a.size()-k-1])
count++;
}
if (count==(a.size())/2)
cout<<"yes";
else
cout<<"no";
}
}
return 0;
}
Dev上可以使用,但丟上來卻是RE
訊息:
生錯誤 (SIGSEGV)(11)!!
Segmentation fault, an address reference boundary error.(記憶體區段錯誤)
可能原因為:
* 通常為使用超過陣列範圍
* 指標指向不正確位址!
* 陣列初始化不正確!
* 嘗試在執行時期定義陣列長度!
sh: line 1: 15257 程式記憶體區段錯誤 /tmp/code_607591.exe <a022.in >/tmp/code_607591.out
請幫忙解答~ 感謝您