zoukankan      html  css  js  c++  java
  • [LeetCode] Palindrome Partitioning, Solution


    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"]
    ]
    » Solve this problem

    [Thoughts]
    这种需要输出所有结果的基本上都是DFS的解法。实现如下。

    [Code]
    1:       vector<vector<string>> partition(string s) {  
    2: vector<vector<string>> result;
    3: vector<string> output;
    4: DFS(s, 0, output, result);
    5: return result;
    6: }
    7: void DFS(string &s, int start, vector<string>& output, vector<vector<string>> &result)
    8: {
    9: if(start == s.size())
    10: {
    11: result.push_back(output);
    12: return;
    13: }
    14: for(int i = start; i< s.size(); i++)
    15: {
    16: if(isPalindrome(s, start, i))
    17: {
    18: output.push_back(s.substr(start, i-start+1));
    19: DFS(s, i+1, output, result);
    20: output.pop_back();
    21: }
    22: }
    23: }
    24: bool isPalindrome(string &s, int start, int end)
    25: {
    26: while(start< end)
    27: {
    28: if(s[start] != s[end])
    29: return false;
    30: start++; end--;
    31: }
    32: return true;
    33: }













  • 相关阅读:
    servlet简介
    synchronized锁的升级过程
    volatile的作用及原理
    redis数据类型
    mysql的主从复制
    redis的缓存穿透,缓存击穿,缓存雪崩
    网络从io到多路复用
    mysql索引
    mysql的执行计划
    mysql 常用函数
  • 原文地址:https://www.cnblogs.com/codingtmd/p/5078896.html
Copyright © 2011-2022 走看看