当前位置: 首页 > article >正文

LeetCode 131-分割回文串

题目链接:LeetCode131

欢迎留言交流,每天都会回消息。

class Solution {

    //用于存储最终返回的结果
    List<List<String>> rs = new ArrayList<>();
    //用于存储分割后的每一个字串
    ArrayList<String> path = new ArrayList<>();
    public List<List<String>> partition(String s) {
        backTracking(s, new StringBuilder(), 0);
        return rs;
    }

    //s:传入的字符串
    //sb:分割后的字串
    //startIdx:记录分割的位置
    void backTracking(String s, StringBuilder sb, int startIdx){
        //终止条件:分割位置到最后时终止
        if(startIdx == s.length()){
            rs.add(new ArrayList<>(path));
            return;
        }

        for(int i = startIdx; i < s.length(); i++){
            sb.append(s.charAt(i));
            if(check(sb)){
                path.add(sb.toString());
                //递归调用
                backTracking(s, new StringBuilder(), i + 1);
                //回溯
                path.remove(path.size() - 1);
            }
        }
    }

    private boolean check(StringBuilder sb){
        for(int i = 0; i < sb.length()/2; i++){
            if(sb.charAt(i) != sb.charAt(sb.length() - 1 - i)){
                return false;
            }
        }
        return true;
    }
}

http://www.kler.cn/a/393688.html

相关文章:

  • 高效稳定!新加坡服务器托管方案助力企业全球化布局
  • 大厂的 404 页面都长啥样?看看你都见过吗~~~
  • OpenGL ES 共享上下文实现多线程渲染
  • AI制作ppt
  • DNS面临的4大类共计11小类安全风险及防御措施
  • 【前端】Vue中如何避免出现内存泄漏
  • 哪个牌子的开放式耳机音质好?5款热门开放式耳机告诉你答案
  • Java使用泛型写一个LRU缓存
  • 【Nginx】反向代理Https时相关参数:
  • 计算机网络(10)网络性能
  • 第13章 Zabbix分布式监控企业实战
  • 【JavaWeb】JSON介绍及入门案例
  • (动画版)排序算法 -选择排序
  • 单片机中的BootLoader(重要的概念讲解)
  • C语言中,让人又爱又恨的字符串编码
  • Python学习从0到1 day26 第三阶段 Spark ③ 数据计算 Ⅱ
  • java作业项目以及azkaban的操作
  • Java入门16——接口
  • exo - 使用日常设备运行AI集群
  • Linux 系统上部署 RabbitMQ
  • Python 正则表达式进阶用法:分组与引用详解
  • 数据挖掘在金融交易中的应用:民锋科技的智能化布局
  • Linux:进程概念
  • dto,vo这些有什么用
  • 万字长文解读深度学习——Transformer
  • SpringBoot(4)- data整合