【Hot100】LeetCode—131. 分割回文串

news2024/11/15 14:19:56

目录

  • 1- 思路
    • 回溯
  • 2- 实现
    • ⭐131. 分割回文串——题解思路
  • 3- ACM 实现


  • 原题链接:131. 分割回文串

1- 思路

回溯

思路:需要一个判断回文的函数
回溯思路:

    1. 回溯过程遍历的是 字符串 s
    1. 参数为 startIndex,主要用来处理到 起始点
  • 通过 startIndexi 对字符串 s 进行 substring ,之后通过 isPlainDrome 函数判断是否回文,若回文则添加到 path

2- 实现

⭐131. 分割回文串——题解思路

在这里插入图片描述

class Solution {

    List<List<String>> res = new ArrayList<>();
    List<String> path = new ArrayList<>();

    public List<List<String>> partition(String s) {
        backTracing(s,0);
        return res;
    }

    public void backTracing(String s,int startIndex){
        // 终止条件
        if(startIndex == s.length()){
            res.add(new ArrayList<>(path));
            return ;
        }

        // 回溯
        for(int i = startIndex;i<s.length();i++){
            if(isPlaindrome(s,startIndex,i)){
                path.add(s.substring(startIndex,i+1));
                backTracing(s,i+1);
                path.remove(path.size()-1);
            }
        }

    }

    public boolean isPlaindrome(String s,int i,int j){
        while(i<j){
            if(s.charAt(i)!=s.charAt(j)){
                return false;
            }
            i++;
            j--;
        }
        return true;
    }
}

3- ACM 实现

package Daily_LC.Month8_Week5;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * partition
 *
 * @author alcohol
 * @Description
 * @since 2024-08-28 13:40
 */
public class partition {



    public static List<List<String>> partition(String s){
        // 回溯
        backTracing(s,0);
        return res;
    }

    static List<List<String>> res = new ArrayList<>();
    static List<String> path = new ArrayList<>();
    public static void backTracing(String s,int startIndex){
        // 终止条件
        if(startIndex == s.length()){
            res.add(new ArrayList<>(path));
            return;
        }

        // 回溯
        for(int i = startIndex ; i < s.length();i++){
            if(isPlainDrome(s,startIndex,i)){
                path.add(s.substring(startIndex,i+1));
                backTracing(s,i+1);
                path.remove(path.size()-1);
            }
        }
    }

    public static boolean isPlainDrome(String s,int i,int j){
        while(i<j){
            if(s.charAt(i)!=s.charAt(j)){
                return false;
            }
            i++;
            j--;
        }
        return true;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        System.out.println("结果是"+partition(input).toString());
    }
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2081617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux篇】环境变量

1. env命令 环境变量是操作系统在运行的时候&#xff0c;记录的一些关键性信息&#xff0c;辅助系统运行。 在Linux系统中执行env命令即可查看当前系统中记录的环境变量。 环境变量是一种key-value型结构&#xff0c;即名称和值。 2. 环境变量&#xff1a;PATH 在前面提出的…

【C语言】深入理解指针3(附转移表源码)

深入理解指针3 1.字符指针变量2.数组指针变量2.1是什么2.2应用 3.二维数组传参的本质4.函数指针变量4.1函数指针变量的创建和使用4.2 typedef关键字 5.函数指针数组6.转移表 1.字符指针变量 上⾯代码的意思是把⼀个常量字符串的⾸字符 h 的地址存放到指针变量 pstr 中。 《剑指…

开关柜无线测温

温度是维护电力系统高压设备正常运行的重要参数&#xff0c;随着智能电网的发展&#xff0c;针对高压设备进行温度在线监测已变得日益重要。文章中的智能无线测温系统&#xff0c;通过对开关柜温度进行智能实时监控&#xff0c;可准确、及时掌握开关柜运行温度变化趋势&#xf…

模型工具LangChain:原理详解与实战案例分析

LangChain 是什么&#xff1f; LangChain是一个用于开发由语言模型驱动的应用程序的框架。它使得可以构建以下类型的应用程序&#xff1a; 数据感知&#xff1a;将语言模型与其他数据源连接起来 智能&#xff1a;允许语言模型与其环境进行交互 LangChain的主要价值在于&…

【java计算机毕设】交流学习平台MySQL ssm vue HTML maven项目设计源代码 带报告 前后端可分离也可不分离

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】交流学习平台MySQL ssm vue HTML maven项目设计源代码 带报告 前后端可分离也可不分离 2项目介绍 系统功能&#xff1a; 交流学习平台包括管理员、学生、教师三种角色。 管理员功能包括个人中心模块用于修…

深度学习实战1--决策树与随机森林(最新版本不报错)

1.乳腺癌数据集简介 乳腺癌数据集包含了美国威斯康星州记录的569个病人的乳腺癌的病情&#xff0c;包含30个维度的生理指标数据(特征),以及乳腺癌是恶性还是良性的标签。因为这是一个二分类问题&#xff0c; 也叫二类判别数据集。 2.实战任务 这数据主要包含569个样本。每个样…

Vue3、Vite、Pinia基础学习

Vue3 1、创建一个Vue3应用 <script src"vue.global.js"></script> <body><div id"app">{{msg}}<h2>{{person.title}}</h2><h2>{{person.name}}</h2></div><script>// 采用解构的方式可以省…

【使用 Python 进行图像裁剪的多种方法】

以下为您介绍使用 Python 进行图像裁剪的多种方法及代码示例&#xff1a; 使用 PIL 库&#xff08;Pillow&#xff09;&#xff1a; Pillow 是 Python 中一个强大的图像处理库&#xff0c;其截图功能不仅可以获取屏幕截图&#xff0c;还能对截图进行丰富的图像处理操作。例如&…

PD取电协议芯片 XSP08Q集成全协议芯片

1&#xff1a;Type-C接口应用很广泛&#xff0c;几乎可以覆盖各行各业&#xff0c;例如快充领域&#xff0c;多种快充协议都可以在Type-C接口上实现&#xff0c;在用电端&#xff0c;只需要使用XSP08取电协议控制芯片&#xff0c;即可获取各种快充电压&#xff0c;例如&#xf…

以某团为案例,30分钟讲清商业模式画布该如何做!

在进行商业模式分析时&#xff0c;即时白板内置的商业模式画布模板显然是一种极其有效的工具。该模板将复杂的商业逻辑分解为明确的要素&#xff0c;使得分析过程更具条理性和方向性&#xff0c;便于深刻理解和呈现商业模式。 以下以某团为例&#xff0c;详细解析其商业逻辑&a…

Django REST Framework(十九)权限

Django REST framework (DRF) 的权限认证涉及以下几个方面&#xff1a;全局权限配置、局部权限配置、自定义权限类、以及自定义认证类。以下是关于这些方面的详细说明&#xff1a; 1. 全局权限配置 在 Django 项目的配置文件 settings.py 中&#xff0c;可以全局配置 DRF 的权…

警惕!血脂偏高,这些身体信号你不可不知!

在快节奏的现代生活中&#xff0c;高血脂&#xff0c;这个看似“沉默的杀手”&#xff0c;正悄然威胁着越来越多人的健康。它不像感冒发烧那样有明显的症状&#xff0c;却能在不知不觉中侵蚀血管&#xff0c;增加心血管疾病的风险。今天&#xff0c;我们就来揭开高血脂的神秘面…

第四届中国RPA+AI开发者大赛火热报名中!

创新未来 第四届中国RPAAI开发者大赛 报名正式启动 数字化转型的加速推进为RPA技术带来了前所未有的发展机遇。AI技术的飞速进步&#xff0c;特别是在机器学习、自然语言处理和计算机视觉等领域的显著进展&#xff0c;已经大幅度扩展了RPA的应用范围。 据IDC研究报告预测&am…

windows共享文件给单个用户方法操作说明

如下图&#xff0c;我们想给学习视频这个文件夹共享出去&#xff0c;但是不想每个用户&#xff08;Everyone&#xff09;都可以访问&#xff0c;只允许本地账户ZZ可以访问&#xff0c;该如何操作呢&#xff1f;请见下面的内容。 右键这个文件夹&#xff0c;点击属性 点击图下所…

本地运行 AI 有多慢 ? 大模型推理测速 (llama.cpp, Intel GPU A770)

上文说到, 天下苦 N 卡久矣, 直接使用 CPU 推理又太慢. 那么, 在没有 N 卡的情况下, 本地运行 AI (神经网络) 大模型, 能够达到怎样的速度 ? 同志们好, 欢迎来到 胖喵穷人实验室 ! 这里专注于 低成本, 低难度, 低风险 的 “三低” 小实验. 胖喵穷人实验室 (PM-PLab-E)正式名称…

如何在算家云搭建模型Linly-Dubbing(语音识别)

一、模型介绍 Linly-Dubbing 是一个智能视频多语言 AI 配音和翻译工具&#xff0c;它融合了 YouDub-webui 的灵感&#xff0c;并在此基础上进行了拓展和优化。 该模型致力于提供更加多样化和高质量的配音选择&#xff0c;通过集成Linly-Talker的数字人对口型技术&#xff0c;…

零基础入门转录组数据分析——预后模型之多因素cox模型

零基础入门转录组数据分析——预后模型之多因素cox模型 目录 零基础入门转录组数据分析——预后模型之多因素cox模型1. 预后模型和多因素cox模型基础知识2. 多因素cox预后模型&#xff08;Rstudio&#xff09;——代码实操2. 1 数据处理2. 2 构建多因素cox模型&#xff08;用输…

有色冶炼行业中的智能电动机保护器

低压电动机作为有色冶炼企业底层大量使用的设备&#xff0c;其异常运行不仅影响冶炼厂的正常生产&#xff0c;还会 威胁到人的生命安全&#xff0c;因此为电动机设置合适而又全面的保护至关重要。智能电动机保护器集保护、 遥测、通信、遥控、显示等功能于一体&#xff0c;是目…

基于大数据的水资源管理与调度优化研究【Web可视化、灰色预测、大屏设计】

需要本项目的私信博主 目录 1 引言 1.1 研究背景 1.2 国内外研究现状 1.3 研究目的 1.4 研究意义 2 关键技术理论介绍 2.1 Python语言 2.2 pandas 2.3 pyecharts 2.4 灰色预测 3 数据来源及处理 3.1 数据来源 3.2 数据处理 4 数据可视化分析及大屏设计 4.1 年度…

Windows下安装Kafka3

参考文章&#xff1a;Windows下安装Kafka3_kafka3 window-CSDN博客 安装配置Kafka 首先在官网 Apache Kafka 下载Kafka二进制压缩包。无论是在CentOS还是在Windows下都是下载该压缩包&#xff0c;里面已经包含了Kafka Linux和windows平台下的可执行文件了。选择目前比较新的3…