【leetcode】回文串划分(DFS)
来源:互联网 发布:淘宝大学出来有学历吗 编辑:程序博客网 时间:2024/06/07 18:37
131. Palindrome Partitioning
leetcode题目
题目描述
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”]
]
题解
深度优先搜索,分两种情况,一种是不断开,一种是可断开时断开。
Solution1:
class Solution {public: vector<vector<string>> partition(string s) { vector<vector<string>> result; vector<string> path; dfs(s, path, result, 0, 1); return result; } // prev 表示前一个隔板, start表示当前隔板 void dfs(string& s, vector<string>& path, vector<vector<string>>& result, size_t prev, size_t start) { if (start == s.size()) { if (isPalindrome(s, prev, start-1)) { path.push_back(s.substr(prev, start-prev)); result.push_back(path); path.pop_back(); } return; } // 不断开 dfs(s, path, result, prev, start+1); // 断开 if (isPalindrome(s, prev, start-1)) { path.push_back(s.substr(prev, start-prev)); dfs(s, path, result, start, start+1); path.pop_back(); } } bool isPalindrome(const string& s, int start, int end) { while(start < end && s[start] == s[end]) { ++start; --end; } return start >= end; }};
阅读全文
0 0
- 【leetcode】回文串划分(DFS)
- 51nod1154(回文串划分)
- 1154 回文串划分(dp)
- 回文串划分(动态规划)
- 1154 回文串划分
- 回文串划分
- 回文串划分
- 1154 回文串划分
- 最小回文串划分
- 回文串划分
- leetcode 131. Palindrome Partitioning回文子串+DFS
- leetcode【Palindrome Partitioning 回文字符串划分】
- 【LeetCode】131.Palindrome Partitioning回文划分
- 整数划分 (dfs)
- DFS求回文串
- uva 11594 划分回文串
- 51nod1154回文串划分
- 回文串最少划分数
- 《数字技术》连载17: 第2章 数字器件 第12节 主从型 D、T、JK 触发器
- 与指定数字相同的数的个数
- 机器学习面试题目总结
- IT界的伦理道德问题
- shell 命令操作hdfs
- 【leetcode】回文串划分(DFS)
- idea:svn不能同步代码问题修正
- Introduction to TensorFlow Datasets and Estimators
- 《数字技术》连载18: 第2章 数字器件 第13节 用或非门构成的触发器
- “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识
- 2017 人工智能+内容生产研究报告【附下载】
- 计算机视觉大规模爆发,6大细分领域将撑起725亿元市场
- js--打卡--12.13 DOM全选练习
- WPF--DataGrid的使用