首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LeetCode 132 Palindrome Partitioning II

LeetCode 132 Palindrome Partitioning II

作者头像
ShenduCC
发布2018-12-07 17:29:50
发布2018-12-07 17:29:50
4570
举报
文章被收录于专栏:算法修养算法修养

LeetCode 132 Palindrome Partitioning II

思路,和上一题一样,先将所有回文串取出。

然后用BFS,找到最小的切割数就可以。

因为没有要求输出字符串,所以结构体中的string 属性可以去掉,防止内存超限。

c++

代码语言:javascript
复制
struct Node
{
    int l;
    int r;
    Node(){}
    Node(int l,int r)
    {
        this->l =l;
        this->r =r;
    }
}a[1000005];
class Solution {
public:
    int tag=0;
    int vis[100005];
  
    int minCut(string s) {
  
        int l =s.length();
    
        for(int i=0;i<l;i++)
        {
            vis[i]=999999;
        }
      
        for(int i=l;i>=1;i--)
        {
            for(int j=0;j+i-1<l;j++)
            {      
                if(judge(s.substr(j,i)))
                {
                    a[tag++]=Node(j,j+i-1);
                }
            }
        }
        
        queue<pair<Node,int>> q;
        for(int i=0;i<tag;i++)
        {
             if(a[i].l==0)
             {
                 q.push(make_pair(a[i],1));
                 vis[a[i].r] = min(vis[a[i].r],1);
             }
        }
        while(!q.empty())
        {
            pair<Node,int> term =q.front();
            q.pop();
            if(term.first.r == l-1)
                return term.second-1;
            for(int i=0;i<tag;i++)
            {
                if(a[i].l==term.first.r+1)
                {
                    if(vis[a[i].r]>term.second+1){
                        q.push(make_pair(a[i],term.second+1));
                        vis[a[i].r] = term.second+1;
                    }
                    
                }
            }
        }
    }
   
    bool judge(string s)
    {
        int l = s.length();

        for(int i=0,j=l-1;i<j;i++,j--)
        {
            
            if(s[i]!=s[j])
                return false;
        }
        

       
        return true;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档