2020年携程校招开发方向第二题

题目描述:

豚厂给自研的数据库设计了一套查询表达式,在这个表达式中括号表示将里面的字符串翻转。请你帮助实现这一逻辑

输入

一行字符串

输出

一行字符串

如果表达式括号不匹配,输出空字符串

样例输入

((ur)oi)

样例输出

iour

解题代码:

 

package com.kyc.xiecheng;

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Main_2 {


    /*请完成下面这个函数,实现题目要求的功能
    当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
    ******************************开始写代码******************************/
    static String resolve(String expr) {
        Stack res = new Stack<>();
        int n =expr.length();
        char[] list= expr.toCharArray();
        int a = 0,b=0;
        for(int i = 0;i queue = new ArrayDeque<>();
                while (!res.empty() && res.peek()!='(' ){
                    queue.add(res.pop());
                }
                if(!res.empty()){
                    res.pop();
                }

                while (!queue.isEmpty()){
                    res.add(queue.poll());
                }


            }else {
                if(list[i]=='('){
                    b++;
                }

                res.push(list[i]);
            }

        }

        if(a!=b){
            return "";
        }
        Stack result = new Stack<>();
        while (!res.empty()){
            result.add(res.pop());
        }
        StringBuilder stringBuilder = new StringBuilder();
        while (!result.empty()){
            stringBuilder.append(result.pop());

        }
        if(stringBuilder.toString().contains("(") || stringBuilder.toString().contains(")")){
            return "";
        }
        return stringBuilder.toString();

    }
    /******************************结束写代码******************************/


    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String res;

        String _expr;
        try {
            _expr = in.nextLine();
        } catch (Exception e) {
            _expr = null;
        }

        res = resolve(_expr);
        System.out.println(res);
    }
}

输出结果 

2020年携程校招开发方向第二题_第1张图片

你可能感兴趣的:(校园招聘)