给定一个由 ‘[‘ ,’]’,'(‘,‘)’ 组成的字符串,请问最少插入多少个括号就能使这个字符串的所有括号左右配对。 例如当前串是 "([[])",那么插入一个’]’即可满足。 数据范围:字符串长度满足

区块链毕设网qklbishe.com为您提供问题的解答

给定一个由 ‘[‘ ,’]’,'(‘,‘)’ 组成的字符串,请问最少插入多少个括号就能使这个字符串的所有括号左右配对。
例如当前串是 "([[])",那么插入一个’]’即可满足。
数据范围:字符串长度满足 给定一个由 '[' ,']','(',‘)’ 组成的字符串,请问最少插入多少个括号就能使这个字符串的所有括号左右配对。    例如当前串是 "([[])",那么插入一个']'即可满足。          数据范围:字符串长度满足

import java.util.Scanner;
 
public class Main{
     
    public static void main(String[] args){
         
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int len = s.length();
        int[][] dp = new int[len][len];
        for (int i = 0; i < len; i++) {
            dp[i][i] = 1;
        }
 
        int min;
        for (int i = 1; i < len; i++) { // i 区间长度
            for (int j = 0; j < len – i; j++) {
                if (match(s.charAt(j), s.charAt(j + i))) {
                    min = dp[j + 1][j + i – 1];
                } else {
                    min = Integer.MAX_VALUE;
                }
                for (int k = j; k < j + i; k++) {
                    min = Math.min(min, dp[j][k] + dp[k + 1][j + i]);
                }
                dp[j][j + i] = min;
            }
        }
        System.out.println(dp[0][len – 1]);
    }
     
 
    private static boolean match(char left, char right) {
        return left == ‘(‘ && right == ‘)’
                || left == ‘[‘ && right == ‘]’;
    }
}

48:47

以上就是关于问题给定一个由 ‘[‘ ,’]’,'(‘,‘)’ 组成的字符串,请问最少插入多少个括号就能使这个字符串的所有括号左右配对。 例如当前串是 "([[])",那么插入一个’]’即可满足。
数据范围:字符串长度满足的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定一个由 ‘[‘ ,’]’,'(‘,‘)’ 组成的字符串,请问最少插入多少个括号就能使这个字符串的所有括号左右配对。 例如当前串是 "([[])",那么插入一个’]’即可满足。 数据范围:字符串长度满足