满意答案
jadesun0910
2013.10.18
采纳率:53% 等级:12
已帮助:9776人
const char *szStr = "abddeaeddba";
BOOL IsLoop(const char *p)
{
char stack[100];
int i,j,l;
l = strlen(p);
j = l / 2; // 取中间位置
j = (l % 2 == 0)?j:j-1; // 长度为奇偶时的修正
for(i = 0; i <= j; i++)
{
stack[i] = p[i];
}
for(i = j,j+=(l % 2 == 0)?1:2;i > -1; i--,j++)
{
if(stack[i] != p[j]) // stack[i--]算不算STACK操作?
return false;
}
return true;
}
int main()
{
// 只要szStr长度不超过99个字符则不会出问题
printf("%s is %s a loop string\n",szStr, IsLoop(szStr)?"":"not");
}
00分享举报