JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

第五十三天-树形问题,Nginx常用命令

wys521 2024-09-10 23:30:03 精选教程 24 ℃ 0 评论

1.nginx常用命令:

测试配置文件/nginx/sbin/nginx -t

启动命令/nginx/sbin/nginx

停止命令/nginx/sbin/nginx -s stop或nginx -s quit

重启命令/nginx/sbin/nginx -s reload

查看进程命令ps -ef |grep nginx

平滑重启kill -HUP [Nginx主进程号(即查看进程命令查到的PID)]

2.131. 分割回文串

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

回文串 是正着读和反着读都一样的字符串。

输入:s = "aab"

输出:[["a","a","b"],["aa","b"]]

解题思路:使用二维数组f来存储子字符串i到j是否为回文串的状态0是未搜索,1是回文串,-1不是回文串。f[i][j]的状态又与f[i+1][j-1]有关。使用dfs搜索所有子字符串,如果是回文串就添加到结果集,遍历完一种子字符的分割方式后回溯到上一个字符,再遍历新的组合方式。

class Solution {
    List<List<String>> res = new ArrayList<List<String>>();
    List<String> tmp = new ArrayList<String>();
    int[][] f;
    int n;
    public List<List<String>> partition(String s) {
        n = s.length();
        f = new int[n][n];
        dfs(s, 0);
        return res;
    }
    public void dfs(String s, int i){
        if(i==n){
            res.add(new ArrayList(tmp));
            return;
        }
        for(int j=i; j<n; j++){
            if(isP(s, i, j)==1){
                tmp.add(s.substring(i, j+1));
                dfs(s, j+1);
                tmp.remove(tmp.size()-1);
            }
        }
    }
    //子字符串i到j是否为回文串
    public int isP(String s, int i, int j){
        if(f[i][j]!=0){
            return f[i][j];
        }
        else if(i>=j){
            f[i][j] = 1;
        }
        else if(s.charAt(i) == s.charAt(j)){
            f[i][j] = isP(s, i+1, j-1);
        }
        return f[i][j];
    }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表