目录

AaronJny

诗酒繁华,书剑天涯。

标签: 深度优先搜索 (3)

使用Python脚本批量替换项目中的数据库地址

这几天接手到了一个很老很老的项目,PHP 的,里面的数据库地址不是同一配置的。有很多子站点,每个字站点又有自己的配置文件,这个时候,问题来了,要换数据库地址了!!! 初闻这个问题,我整个人都是懵逼的,这不是搞我嘛?这么多改起来得多麻烦? 但活儿还是得做啊,于是作为一名机智的大彩笔,我决定写个 Python 脚本解决这个问题。 当然,这个问题可以被简单理解为,给定路径 a,字符串列表 b,字符串 c,请将路径 a 下的全部文本文件(包括若干级子目录下的文本文件)中的字符串列表 b 中的全部字符串统一替换为字符串 c。 脚本编写如下: # -*- coding: utf-8 -*- # @File : replace_content.py # @Author: AaronJny # @Date : 2019/11/21 # @Desc : 给定路径a,字符串列表b,字符串c,请将路径a下的全部文本文件(包括若干级子目录下的文本文件)中的字符串列表b中的全部字符串统一替换为字符串c。 import logging import os from pprint import pprint imp....

leetcode题解第22题 Generate Parentheses(括号生成)

题目的大意如下: 给定一个整数 n,代表括号的对数,请给出所有合法的括号组合。 样例输入: 3 样例输出: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 题目链接:https://leetcode.com/problems/generate-parentheses/ 解题思路: 生成 n 对括号,通过递归可以很轻松实现,问题的关键在于,什么样的生成式是正确的。 观察可以发现,合法的括号组合有如下特征: 假设 s 是一个合法的括号组合,则在 s 的任意位置,左边的左括号的数量一定大于等于右括号的数量。 emmm,大家可以举几个例子看一下,都是满足的。那么,在满足特征的情况下,使用递归生成所有组合方式即可。 样例代码: class Solution: # 最终的结果集 result = set() # 用于临时存储递归生成的一种合法组合的列表 curstring = [] def dfs(self, leftcnt, rightcnt): """ 递归搜索所有可能的合法组合,并加入到结果集中 :param le....

leetcode第17题 Letter Combinations of a Phone Number(电话号码的字母组合)

比较简单,直接深搜 + 回溯就能够解决的问题。题目的大意是: 给定一个只包含 2-9 的字符串,按照手机按键的映射关系,将它转化为一个只包含 a-z 的字符串,输出这种所有可能的转换字符串。 数字到小写字母的映射关系可以表示如下: digits_chr_map = { '2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz', } 样例输入: "23" 样例输出: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"] 题目链接:https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 思路很简单,直接深搜 + 回溯就可以了,所以就不多说了,直接看代码吧,注释比较详细(python3): class Solution: # 存放所有可能的字符串的列表 combinations = [] # 数字到字母的映射....