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"]
      ]
     注意下面的例子:                                                                          
    Input: "fff"
    Expected: [["f","f","f"],["f","ff"],["ff","f"],["fff"]]
    class Solution {
    public:
        vector<vector<string>> partition(string s) {
            vector<vector<string>> res;
            if(s.size()<1)
                return res;
            vector<string> partition;
            addPalindrome(s,0,partition,res);
            return res;
        }
    private:
        void addPalindrome(string s,int start,vector<string> &partition,vector<vector<string> >&res){
            if(start == s.size()){
                res.push_back(partition);
                return;
            }
            for(int i = start+1;i<=s.size();i++){
                string str = s.substr(start,i-start);
                if(isPalindrome(str)){
                    partition.push_back(str);
                    addPalindrome(s,i,partition,res);
                    partition.pop_back();
                }//end if
            }//end for
    
        }
    
        bool isPalindrome(string str){
            int left = 0;
            int right = str.size()-1;
            while(left<right){
                if(str[left]!=str[right])
                    return false;
                left++;
                right--;
            }//end while
           return true;
        }
    };

     方法:DFS!

  • 相关阅读:
    BeyondLinux_Since1991
    TED系列:我们究竟在教AI学习什么
    TED系列:算法的影响
    TED系列:代码-下一代的通用语言
    TED系列:互联网源起故事
    Hadoop-01 搭建hadoop伪分布式运行环境
    JavaSE-26 Swing
    JavaSE-25 AWT
    JavaSE-24 多线程
    JavaSE-23 注解
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3872720.html
Copyright © 2011-2022 走看看