您的位置:首页 > 其它

判断括号序列是否合法

2012-10-10 17:02 218 查看
括号序列,由( { [组成 例如(([{}]))()这样的序列是合法的,{)序列是不合法的。写个函数判断该序列是否合法,函数名称为bool isValidSeq(string input);

以下是简单实现,希望有人提供更快更优的方法,

bool isValidSeq(string input)

{

char Left[10]={0};

int index=0;

for (int i=0;i<input.length();++i)

{

if ( (input[i]=='(')

||(input[i]=='[')

||(input[i]=='{'))

{

Left[index++] = input[i];

}

else

{

if ((input[i] =='}')&&(Left[index-1]=='{'))

{

Left[--index]='\0';

continue;

}

if ((input[i] ==']')&&(Left[index-1]=='['))

{

Left[--index]='\0';

continue;

}

if ((input[i] ==')')&&(Left[index-1]=='('))

{

Left[--index]='\0';

continue;

}

}

}

if (index == 0)

{

return true;

}

return false;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: