博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Palindrome Partitioning
阅读量:5056 次
发布时间:2019-06-12

本文共 1543 字,大约阅读时间需要 5 分钟。

Given a string s, partition s such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of s.

For example, given s = "aab",

Return

[    ["aa","b"],    ["a","a","b"]  ] 思路: 题目的要求是求所有的回文划分,因此一定是使用DFS(递归 + 回溯)模板。只需加入判断是否为回文的模块即可。
1 public class Solution { 2     /** 3      * @param s: A string 4      * @return: A list of lists of string 5      */ 6     public List
> partition(String s) { 7 if (s == null || s.length() == 0) { 8 return null; 9 }10 List
> result = new ArrayList<>();11 List
path = new ArrayList<>();12 helper(s, result, path, 0);13 return result;14 }15 private boolean isPalindrome(String s) {16 int begin = 0;17 int end = s.length() - 1;18 while (begin < end) {19 if (s.charAt(begin) != s.charAt(end)) {20 return false;21 }22 ++begin;23 --end;24 }25 return true;26 }27 private void helper(String s, List
> result, List
path, int pos) {28 if (pos == s.length()) {29 result.add(new ArrayList
(path));30 return;31 }32 for (int i = pos; i < s.length(); i++) {33 String prefix = s.substring(pos, i + 1);34 if (!isPalindrome(prefix)) {35 continue;36 }37 path.add(prefix);38 helper(s, result, path, i + 1);39 path.remove(path.size() - 1);40 }41 }42 }

 

转载于:https://www.cnblogs.com/FLAGyuri/p/5366698.html

你可能感兴趣的文章
两句励志的话
查看>>
在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别
查看>>
### matlab
查看>>
JQuery动画篇
查看>>
网易技术类笔试
查看>>
python自定义编写有关用户登录注册程序代码
查看>>
ios日历视图实现日期输入
查看>>
Mnesia基本用法
查看>>
iOS-字符串的连接
查看>>
(leetcode题解)Max Consecutive Ones
查看>>
LOJ#10004. 「一本通 1.1 例 5」智力大冲浪
查看>>
JS的函数节流(throttle)
查看>>
webpack简介
查看>>
[iOS]利用Appicon and Launchimage Maker生成并配置iOSApp的图标和启动页
查看>>
C#正则删除HTML标签
查看>>
1、My Scripts
查看>>
springmvc
查看>>
U盘安装Debian KDE 输入法 Manjaro Linux WPS 字体
查看>>
用户反馈:对 Rafy 开发框架的一些个人建议
查看>>
_DataStructure_C_Impl:二叉排序树的查找
查看>>