当前位置:网站首页>力扣 剑指 Offer II 094. 最少回文分割
力扣 剑指 Offer II 094. 最少回文分割
2022-07-23 05:48:00 【三更鬼】
题目来源:https://leetcode.cn/problems/omKAoA/
大致题意:
给一个字符串,将字符串分割成子串,其中每个子串都是回文串,求所需要的最小分割次数
思路
对于字符串 s[0, j] 范围的子串,若 s[i, j] 是回文串,那么 s[0, j] 的最少回文分割次数即为 s[0, i - 1] 的最少回文分割次数 +1
于是可以得到状态转移方程:
dp[j] = min(dp[i] + 1), 0 < i < j
具体实现时,可以先处理一个布尔数组 f[n][n],用来表示s[i, j] 是不是回文串
f[i][j] = (f[i + 1][j - 1] & s[i] = s[j])
代码:
public int minCut(String s) {
int n = s.length();
// 用来表示 s[i, j] 是否是回文串的标志数组
boolean[][] f = new boolean[n][n];
// 初始化都为 true, 主要是将 i >= j 时的数组元素处理为 true
for (int i = 0; i < n; i++) {
Arrays.fill(f[i], true);
}
// 动态规划,完成标志数组
for (int i = n - 1; i >= 0; i--) {
for (int j = i + 1; j < n; j++) {
f[i][j] = f[i + 1][j - 1] && s.charAt(i) == s.charAt(j);
}
}
// 存最少回文分割次数
int[] dp = new int[n];
// 初始化都为最大值
Arrays.fill(dp, n);
// 动态规划
for (int i = 0; i < n; i++) {
// 如果子串 s[0, i] 是回文串,那么分割次数为 0
if (f[0][i]) {
dp[i] = 0;
continue;
}
for (int j = 0; j < i; j++) {
// 当子串为回文串时,更新最小分割次数
if (f[j + 1][i]) {
// 状态转移方程
dp[i] = Math.min(dp[j] + 1, dp[i]);
}
}
}
return dp[n - 1];
}
边栏推荐
- Pod topology constraints
- Rip configuration instance learning record
- ftp部署
- User and group management, file permissions
- Unity3d+moba+ skill indicator (I)
- Single arm routing configuration instance learning record
- Install LNMP service deployment using yum
- 雷达导论PART VII.1 雷达与分辨率
- Copy, paste and drag files between VMware virtual machine and host
- 时间复杂度总结(Ο是渐进上界,Ω是渐进下界,p,np,np-hard,NPC问题)
猜你喜欢

雷达导论PART VII.2 成像方法

Telnet 配置实例学习记录

使用vscode进行远程编辑和调试

Static route configuration instance learning record

Quick solution: xshell can't drag into folders or software packages

雷达导论PART VII.3 SAR图像的形成和处理

机器学习:李航-统计学习方法(二)感知机+代码实现(原始+对偶形式)

User and group management, file permissions

Rip configuration instance learning record

HCIA----05 RIP
随机推荐
雷达导论PART VII.2 成像方法
C#输入一个字母,判断其大小写
Ronge answer script production (latest in 2020)
SAR成像之点目标仿真(一)—— 数学模型
Manually configure DHCP service
HCIA----05 RIP
Rip configuration instance learning record
Install LNMP service deployment using yum
Unity3d:assetbundle simulation loading, synchronous loading, asynchronous loading, dependent package loading, automatic labeling, AB browser, incremental packaging
Build FRPC client in NAS [super brainless]
OSPF 单区域配置实例学习记录
Array leetcode977. Square of ordered array
SAR成像之点目标仿真(二)—— Matlab仿真
写一个可执行文件依赖.so的测试用例
PostgreSQL k8s部署模板
Leetcode problem solution summary
常见的cmd命令快速打开程序
tar、sftp、fin的、history命令,变量、别名
C output Fibonacci sequence
Unity used trilib plug-in under URP pipeline to load model material incorrectly