130. 被围绕的区域 Surrounded Regions


m x nboard'X''O''X''O''X'

示例 1:


输入:board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]

输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]

解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。 任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被填充为 'X'。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的。


示例 2:

输入:board = [["X"]]

输出:[["X"]]


提示:

   m == board.length

   n == board[i].length

   1 <= m, n <= 200

   board[i][j] 为 'X' 或 'O'

代码1: DFS


输出:

[X,X,X,X]

[X,X,X,X]

[X,X,X,X]

[X,O,X,X]

代码2: BFS



131. 分割 Palindrome Partitioning


sss


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


示例 1:

输入:s = "aab"

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


示例 2:

输入:s = "a"

输出:[["a"]]


提示:

1 <= s.length <= 16s

代码1: 动态规划


输出:

[[a,a,b],[aa,b]]

[[a]]

代码2: 回溯



132. 分割回文串 II Palindrome Partitioning II


ss


返回符合要求的 最少分割次数


示例 1:

输入:s = "aab"

输出:1

解释:只需一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。


示例 2:

输入:s = "a"

输出:0


示例 3:

输入:s = "ab"

输出:1

提示:

   1 <= s.length <= 2000

   s 仅由小写英文字母组成

代码1: 动态规划



输出:

1

0

1

代码2: 动态规划