zoukankan      html  css  js  c++  java
  • [Leetcode] Palindrome partitioning 拆分回文串

    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的方法,但我对这个用法不是很熟,所以又找思路了,然后自己按照自己理解的写出。终止条件是: 每次按各种分法遍历完字符串以后就将满足的情况输出到结果中。这题是典型的深搜模式,判断后回溯。参考1Grandyang

     1 class Solution {
     2 public:
     3     vector<vector<string>> partition(string s) 
     4     {
     5         vector<vector<string>> res;
     6         vector<string> path;
     7         if(s.size()<=0) return res;
     8         int len=s.size();
     9 
    10         subParti(s,len,0,path,res);
    11         return res;    
    12     }
    13 
    14     void subParti(string s,int len,int star,vector<string> &path,vector<vector<string>> &res)
    15     {
    16         if(star==len)
    17         {
    18             res.push_back(path);
    19             return;
    20         }
    21             
    22         string str;
    23         
    24         for(int i=star;i<len;++i)
    25         {
    26             str=s.substr(star,i-star+1);
    27 
    28             if(isPalindrome(str))
    29             {
    30                 path.push_back(str);
    31                 subParti(str,len,i+1,path,res);
    32                 path.pop_back();
    33             }
    34         }
    35     }
    36 
    37     //判断是否为回文串
    38     bool isPalindrome(string str)
    39     {
    40         int strLen=str.size();
    41         if(strLen==0)
    42             return false;
    43         
    44         int left=0,right=strLen-1;
    45         while(left<right)
    46         {
    47             if(str[left] !=str[right])
    48                 return false;
    49             
    50             left++;
    51             right--;
    52         }
    53         return true;
    54     }
    55 
    56 };
  • 相关阅读:
    Laravel路由除了根目录全报404错误
    jQuery源码分析之整体框架
    JS进阶系列之this
    JS进阶系列之原型、原型链
    原生JavaScript实现的贪吃蛇
    html文档流和事件流
    (转)mysql执行计划分析
    (转)重定向和转发区别
    el表达式取值优先级
    (转)性能测试基本指标
  • 原文地址:https://www.cnblogs.com/love-yh/p/7087335.html
Copyright © 2011-2022 走看看