zoukankan      html  css  js  c++  java
  • lintcode:Palindrome Partitioning 分割回文串

    题目:

    分割回文串

    给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。

    返回s所有可能的回文串分割方案。

    样例

    给出 s = "aab",返回

      [

        ["aa","b"],

        ["a","a","b"]

      ]

    解题:

    这个题目不好搞啊,需要动态规划

    在这里,没有根据动态规划,也解决了,貌似是暴力解决

    从下标pos开始,找到下标i使得 pos到i内是回文字符串,再从i+1开始,找到下一个回文串,这样一直找下去。。。

    时间复杂度O(n2)

    Java程序:

    public class Solution {
        /**
         * @param s: A string
         * @return: A list of lists of string
         */
        public ArrayList<ArrayList<String>> partition(String s) {
            // write your code here
            ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
            if(s==null)
                return result;
            ArrayList<String> path = new ArrayList<String>();
            helper(s,path,0,result);
            return result;
        }
        private boolean isPalindrome(String s){
            int beg = 0;
            int end = s.length() - 1;
            while(beg<end){
                if(s.charAt(beg)!=s.charAt(end))
                    return false;
                beg++;
                end--;
            }
            return true;
        }
        private void helper(String s,ArrayList<String> path,int pos,ArrayList<ArrayList<String>> result){
            if(pos==s.length()){
                result.add(new ArrayList<String>(path));
                return;
            }
            for(int i=pos+1;i<=s.length();i++){
                String prefix = s.substring(pos,i);
                if(!isPalindrome(prefix))
                    continue;
                path.add(prefix);
                helper(s,path,i,result);
                path.remove(path.size()-1);
            }
        }
    }
    View Code

    总耗时: 2017 ms

    上面程序利用到的是深度优先遍历

    DFS

    (1) 判断是否结束

    (2) for 循环取所有的子串

     2.1 判断是否是回文字符串

    2.2 是加入,递归进行

    2.3 不是,for循环下一位 
     
  • 相关阅读:
    webbench 网站压力测试
    php测试工具
    数据库相关文章转载(2) MySQL自带的性能压力测试工具mysqlslap详解
    数据库相关文章转载(1) MySQL性能优化之参数配置
    绿盟RSAS配置小记
    ubuntu14.04 64位安装H3C iNode客户端
    Ubuntu安装iNOde
    CTF中图片隐藏文件分离方法总结
    信息安全铁人三项比赛答案
    360春秋杯CTF比赛WRIteUP
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4868084.html
Copyright © 2011-2022 走看看