杂项|实习--Day21

8/19
导师今天请假了,我也快要回学校了,回去了不知道还能不能来回来实习,把手头的事情赶快做完吧
回文子串数量 先刷道题,中等难度
链接:地址
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
示例 1:
输入:“abc”
输出:3
解释:三个回文子串: “a”, “b”, “c”
示例 2:
【杂项|实习--Day21】输入:“aaa”
输出:6
解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”
这题要用动态规划,但是动态规划我们知道,即使知道了用动态规划,也不知道到底怎么个规划法,哈哈哈,简单来说,动态规划就是要找到大问题,和大问题下的子问题怎么解决
我们可以设置一个二维dp数组,一个字符的肯定是回文串,两个字符的相等也是回文串,重点是超过两个字符的子串需要首尾字符相同且这个子串的子串也要是回文串,所以代码实现就可以了

def countSubstrings(self, s: str) -> int: dp = [[False for _ in range(len(s))] for _ in range(len(s))] count = 0 for j in range(len(s)): for i in range(j+1): if i == j: dp[i][j] = True count += 1 elif j-i == 1 and s[i] == s[j]: dp[i][j] = True count += 1 elif j-i > 1 and s[i] == s[j] and dp[i+1][j-1]: dp[i][j] = True count += 1 return count

celery框架 暂时做了解吧,分布式异步框架
pycharm会给代码文件自动加上上层路径,将代码迁移到Linux上面跑的时候要记得加上
import os import sys sys.path.insert(0,os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

    推荐阅读