スタックとキューを使用して、カッコ付き文字列を反転


タイトル説明:文字列str=「(ur)oi)」は、()はカッコ内部の文字列を反転させ、反転後の文字列を出力する必要があることを示します.サンプル出力は「iour」です.
構想:スタックを利用して括弧内の文字列を反転し、キューを利用して反転後の文字列を格納する.具体的な考え方は以下の通りです.
1.strを巡る文字.文字が')'でない場合、スタックに押し込む.
2.')'の場合、スタックの上部から要素が順次ポップアップされ、スタックの上部要素が'('、左かっこがポップアップされるまで、ポップアップ要素がキューに押し込まれます.
3.キュー要素を順次デキューし、デキュー要素をスタックに押し込む.
4.遍歴を続ける.
    public static String reverse(String str){
        StringBuffer answer=new StringBuffer();
        if(str==null||str.length()==0) return "";

        char[] chars=str.toCharArray();
        int length=chars.length;
        Stack stack=new Stack<>();
        Queue queue=new LinkedList<>();

        //    
        char currentValue;

        for(int i=0;i) queue).addLast(currentValue);
                }
                if(!stack.empty()){
                    stack.pop();
                }
                while(!queue.isEmpty()){
                    stack.push(((LinkedList) queue).pollFirst());
                }
            }
            else{
                //          
                stack.push(chars[i]);
            }
        }

        for(char elem:stack){
            answer.append(elem);
        }

        return answer.toString();
    }