[leetcode]132. Palindrome Partitioning II(Java)
来源:互联网 发布:老男孩linux视频云盘 编辑:程序博客网 时间:2024/06/06 03:59
https://leetcode.com/problems/palindrome-partitioning-ii/#/description
Given a string s, partition s such that every substring of the partition is a palindrome.
Return the minimum cuts needed for a palindrome partitioning of s.
For example, given s = "aab"
,
Return 1
since the palindrome partitioning ["aa","b"]
could be produced using 1 cut.
package go.jacob.day717;import org.junit.Test;public class Demo1 {@Testpublic void testName() throws Exception {System.out.println(minCut("abcdefg"));}public int minCut(String s) {if (s == null)return 0;char[] c = s.toCharArray();int n = s.length();int min;// cut用来记录结果int[] cut = new int[n];// res[j][i]为true,表示s中下标j到i的子串为回文字符串boolean[][] res = new boolean[n][n];for (int i = 0; i < n; i++) {// 初始化,默认全部无回文min = i;for (int j = 0; j <= i; j++) {if (c[j] == c[i] && (j > i - 2 || res[j + 1][i - 1])) {res[j][i] = true;min = j == 0 ? 0 : Math.min(min, cut[j - 1] + 1);}}cut[i]=min;}return cut[n - 1];}public int minCut_1(String s) {if (s == null)return 0;int i, j, n = s.length();int cuts[] = new int[n];boolean dp[][] = new boolean[n][n];for (i = 0; i < n; i++) {cuts[i] = i;for (j = 0; j <= i; j++) {if (j == i)dp[j][i] = true;else {if (s.charAt(i) != s.charAt(j))continue;if (j == i - 1)dp[j][i] = true;elsedp[j][i] = dp[j + 1][i - 1];}if (dp[j][i]) {if (j == 0)cuts[i] = 0;elsecuts[i] = Math.min(cuts[j - 1] + 1, cuts[i]);}}}return cuts[n - 1];}}
阅读全文
0 0
- [leetcode]132. Palindrome Partitioning II(Java)
- [Leetcode] Palindrome Partitioning II (Java)
- Palindrome Partitioning II Leetcode Java
- [LeetCode][Java] Palindrome Partitioning II
- LeetCode 132. Palindrome Partitioning II
- [LeetCode]132.Palindrome Partitioning II
- [Leetcode] 132. Palindrome Partitioning II
- [leetcode] 132.Palindrome Partitioning II
- Leetcode 132. Palindrome Partitioning II
- LeetCode 132. Palindrome Partitioning II
- Leetcode 132. Palindrome Partitioning II
- [LeetCode] 132. Palindrome Partitioning II
- 132. Palindrome Partitioning II, leetcode
- [LeetCode]132. Palindrome Partitioning II
- Leetcode 132. Palindrome Partitioning II
- [LeetCode]132. Palindrome Partitioning II
- 【LeetCode】132.Palindrome Partitioning II
- Leetcode 132. Palindrome Partitioning II
- 修改PDF文件中文字样式使用什么软件比较好
- 判断两个链表是否相交,若相交,求交点
- 你怎么看待云计算未来?(推过)
- Educational Codeforces Round 25E. Minimal Labels(拓扑排序+思维)
- Decorator的又一应用(1)
- [leetcode]132. Palindrome Partitioning II(Java)
- 多个一维数组函数输出
- android电话号码匹配
- Zookeeper入门
- WebSocket是什么原理?为什么可以实现持久化连接?
- Nginx访问量统计
- Tomcat启动异常:A child container failed during start 与 ClassNotFoundException: org.slf4j.Loggerl分析与解决方法
- 反向SSH
- Spring思维导图,让Spring不再难懂(ioc篇)