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!

  • 相关阅读:
    English Sentenses【no use】
    MacOS显示和不显示隐藏文件
    各个会议期刊论文录取情况
    C++之linux下文件结构实现
    Ubuntu安装opencv
    tmux使用
    事件的默认行为 与 事件流
    currentTarget 与 Target 的区别
    元数据标签Embed
    fl,flash,mx包的区别
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3872720.html
Copyright © 2011-2022 走看看