zoukankan      html  css  js  c++  java
  • 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"]
      ]
    

    思路:

    深搜

    代码:

     1     bool isPalindrome(string s){
     2         int l = s.length();
     3         if(l == 1)
     4             return true;
     5         int i = 0;
     6         while(i < l/2){
     7             if(s[i] != s[l-i-1])
     8                 return false;
     9             i++;
    10         }
    11         return true;
    12     }
    13     void search(vector<vector<string> > &result, vector<string> &tmp, string s, int index){
    14         if(index == s.length()){ 
    15             result.push_back(tmp);
    16             return;
    17         }
    18         for(int i = index+1; i <= s.length(); i++){
    19             string t = s.substr(index, i-index);
    20             if(isPalindrome(t)){
    21                 tmp.push_back(t);
    22                 search(result, tmp, s, i);
    23                 tmp.erase(tmp.end()-1);
    24             }
    25         }
    26     }
    27     vector<vector<string> > partition(string s) {
    28         // IMPORTANT: Please reset any member data you declared, as
    29         // the same Solution instance will be reused for each test case.
    30         vector<vector<string> > result;
    31         vector<string> tmp;
    32         search(result, tmp, s, 0);
    33         return result;
    34     }
  • 相关阅读:
    Linq101-Generation
    Linq101-Element
    解决 oracle 错误ORA-01033
    Oracle数据表恢复
    C++构造函数
    C++类与对象
    CMake命令之export
    CMake命令之install
    CMake变量(提供信息的变量)
    CMake常用变量
  • 原文地址:https://www.cnblogs.com/waruzhi/p/3407486.html
Copyright © 2011-2022 走看看