题解 | #所有的回文子串II#

所有的回文子串II

https://www.nowcoder.com/practice/3373d8924d0e441987650194347d3c53

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return string字符串一维数组
     */
    public static Set<String> set = new TreeSet<>();
    public String[] partitionII (String s) {
        // write code here
        search(0, s, new StringBuffer());
        String[] strings = new String[set.size()];
        int index = 0;
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()){
            strings[index] = iterator.next();
            index++; 
        }
        return strings;
    }

    public static void search(int index,String s,StringBuffer stringBuffer){
        if(index==s.length()){
            return;
        }
        if(!s.contains(stringBuffer.toString())){
            return;
        }
        stringBuffer.append(s.charAt(index));
        if(stringBuffer.length()>=2 && isParame(stringBuffer.toString()) && s.contains(stringBuffer.toString())){
            set.add(stringBuffer.toString());
        }
        search(index+1,s,stringBuffer);
        stringBuffer.deleteCharAt(stringBuffer.length()-1);
        search(index+1,s,stringBuffer);
    }

    public static boolean isParame(String s) {
        StringBuilder stringBuffer = new StringBuilder();
        stringBuffer.append(s);
        return stringBuffer.reverse().toString().equals(s);
    }
}

本题考察的知识点是递归,所用的编程语言是java。

递归的本质就是枚举,将所有的可能性都列举出来,然后判断满足条件的有哪些,本题也是一样,首先要求是回文串,而且是子串,然后再按照字符串字典序从小到大的顺序进行排列

全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务