热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

力扣(131.93)补9.21

131.分割回文串又是不会做的一题呢。代码看起来不难,但想出代码还是很难得。classSolution{publicListpartiti


131.分割回文串


又是不会做的一题呢。

340c61afa0f34dab8593ad0983b6bef2.png

代码看起来不难,但想出代码还是很难得。

 



class Solution {


    public List> partition(String s) {


        List> ans&#61;new ArrayList<>();


        List list&#61;new ArrayList<>();


        back(ans,list,s,0);


        return ans;


 


    }


    boolean huiwen(String s ,int index,int i){


        for(int j&#61;index,k&#61;i;j

            if(s.charAt(j)!&#61;s.charAt(k))


            return false;


        }


        return true;


    }


    void back(List> ans,List list,String s,int index){


        if(index>&#61;s.length()){


            ans.add(new ArrayList<>(list));


            return ;


        }


        for(int i&#61;index;i

            if(huiwen(s,index,i)&#61;&#61;true){


                list.add(s.substring(index,i&#43;1));


            }


            else{


                continue;


            }


            back(ans,list,s,i&#43;1);


            list.remove(list.size()-1);


        }


 


    }


}




93.复原IP地址


不会&#xff0c;距离上次做题又过了3个星期&#xff0c;本来是想每日2题&#xff0c;结果搞笑的是&#xff0c;大概每隔2个星期碰一次力扣&#xff0c;最终做成了每日一题的样子&#xff0c;由于某些因素&#xff0c;最近又要考虑用C&#43;&#43;刷题。



class Solution {


private:


    vector res;


    bool isvalid(const string&s,int start,int end){


        if(start>end)


        return false;


        if(s[start]&#61;&#61;&#39;0&#39;&&start!&#61;end)


        return false;


这俩个if语句是为了解决部分特殊用例。很细节的。


        int num&#61;0;


        for(int i&#61;start;i<&#61;end;i&#43;&#43;){


            if(s[i]>&#39;9&#39;||s[i]<&#39;0&#39;)


            return false;


            num&#61;num*10&#43;s[i]-&#39;0&#39;;


            if(num>255)


            return false;


        }


        return true;


    }


    void back(string&s,int start,int pointnum){


        if(pointnum&#61;&#61;3){


            if(isvalid(s,start,s.size()-1))


            res.push_back(s);


            return;


        }


        for(int i&#61;start;i

            if(isvalid(s,start,i)){


                pointnum&#43;&#43;;


                s.insert(s.begin()&#43;i&#43;1,&#39;.&#39;);


                back(s,i&#43;2,pointnum);


                s.erase(s.begin()&#43;i&#43;1);


                pointnum--;


            }else break;


        } 


    }


    public:


    vector restoreIpAddresses(string s) {


        res.clear();


        if(s.size()<4||s.size()>12) return res;


        back(s,0,0);


        return res;


    }


};




推荐阅读
author-avatar
U友47919166
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有