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了。不过为什么我老是忘记写++low跟--high呢,都死循环了自己还不知道!

     1 class Solution {
     2 public:
     3     bool isPail(string &s) {
     4         int low = 0, high = s.length() - 1;
     5         while (low < high) {
     6             if (s[low] != s[high]) {
     7                 return false;
     8             }
     9             ++low;
    10             --high;
    11         }
    12         return true;
    13     }
    14     
    15     void findNext(vector<vector<string> > &res, string &s, vector<string> part, int idx) {
    16         if (idx == s.length()) {
    17             res.push_back(part);
    18             return;
    19         }
    20         string substr;
    21         for (int len = s.length() - idx; len > 0; --len) {
    22             substr = s.substr(idx, len);
    23             if (isPail(substr)) {
    24                 part.push_back(substr);
    25                 findNext(res, s, part, idx + len);
    26                 part.pop_back();
    27             }
    28         }
    29     }
    30     
    31     vector<vector<string>> partition(string s) {
    32         vector<vector<string> > res;
    33         vector<string> part;
    34         findNext(res, s, part, 0);
    35         return res;
    36     }
    37 };
  • 相关阅读:
    canvas设置渐变
    canvas设置线条样式
    canvas给图形添加颜色
    Vue中父组件与子组件之间传值
    Vue实例的生命周期
    es6常用语法和特性
    JS基础:常用API
    JS基础:函数
    JS基础:闭包和作用域链
    JS基础:this的指向以及apply、call的作用
  • 原文地址:https://www.cnblogs.com/easonliu/p/3657733.html
Copyright © 2011-2022 走看看