String str="5+(4-3))"表達式
char kuo Hao[];用作支架堆疊
掃描字符串中的字符
1如果是(那麽堆棧。
2如果是)
a若戰非空,出棧
b如果棧為空,則不匹配。算法結束
最後壹個堆棧是空的,並且匹配。
下面是我的實現。
公共類標記{
公共靜態void main(String args[])
{
int top = 0;//堆指針
布爾end = true//不匹配只輸出壹次。
char stack[]= new char[100];//保存括號
string biaoda = "(((1+(2)-6))";//表達式
char Biao[]= biaoda . tochararray();//將字符串轉換為字符數組
System.out.println("表達式:"+biaoda);
for(int I = 0;我& lt表.長度和長度。& amp結束;I++)//遍歷表達式中的所有字符。
{
If(Biao[I]= '(')//如果是(則放入堆棧。
{
stack[top]= '(';
top++;
}
Else if(biao[i]==')')//如果是,播放。
{
如果(!(top==0))
top-;
其他
{
System.out.println("括號不匹配");
end = false
}
}
}//除了循環,還有兩種可能
if(top = = 0 & amp;& amp結束)
System.out.println("括號匹配");//循環外堆棧為空
else if(頂!= 0 & amp& amp結束)
System.out.println("括號不匹配");//退出循環時堆棧不為空。
}
}