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

Leetcode-131.Palindrome Partitioning [C++][Java]

目录

一、题目描述

二、解题思路

【C++】

【Java】


Leetcode-131.Palindrome Partitioninghttps://leetcode.com/problems/palindrome-partitioning/description/131. 分割回文串 - 力扣(LeetCode)131. 分割回文串 - 给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]] 提示: * 1 <= s.length <= 16 * s 仅由小写英文字母组成https://leetcode.cn/problems/palindrome-partitioning/description/

一、题目描述

Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s.

Example 1:

Input: s = "aab"
Output: [["a","a","b"],["aa","b"]]

Example 2:

Input: s = "a"
Output: [["a"]]

Constraints:

  • 1 <= s.length <= 16
  • s contains only lowercase English letters.

二、解题思路

  • 时间复杂度:O(n⋅2^n)

  • 空间复杂度:O(n^2)

【C++】

class Solution {
private:void dfs(const string& s, int start, vector<string>& pat, vector<vector<string>>& res) {if (start == s.length()) {res.push_back(pat);}else {for (int i = start; i < s.length(); i++) {if (isPalindrome(s, start, i)) {pat.push_back(s.substr(start, i - start + 1));dfs(s, i + 1, pat, res);pat.pop_back();}}}}bool isPalindrome(const string& s, int l, int r) {while (l <= r) if (s[l++] != s[r--]) return false;return true;}public:vector<vector<string>> partition(string s) {vector<vector<string>> res;vector<string> pat;      dfs(s, 0, pat, res);return res;}
};

【Java】

class Solution {private void dfs(String s, int start, List<String> pat, List<List<String>> res) {if (start == s.length()) {res.add(new ArrayList<>(pat));}else {for (int i = start; i < s.length(); i++) {if (isPalindrome(s, start, i)) {pat.add(s.substring(start, i + 1));dfs(s, i + 1, pat, res);pat.remove(pat.size() - 1);}}}}private boolean isPalindrome(String s, int l, int r) {while (l <= r) if (s.charAt(l++) != s.charAt(r--)) return false;return true;}public List<List<String>> partition(String s) {List<List<String>> res = new ArrayList<>();List<String> pat = new ArrayList<>();dfs(s, 0, pat, res);return res;}
}

相关文章:

Leetcode-131.Palindrome Partitioning [C++][Java]

目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-131.Palindrome Partitioninghttps://leetcode.com/problems/palindrome-partitioning/description/131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09;131. 分割回文串 - 给你一个字符串 s&#xff0c;请你…...

LeetCode 解题思路 20(Hot 100)

解题思路&#xff1a; 递归定义对称性&#xff1a; 若两棵子树镜像对称&#xff0c;需满足&#xff1a; 当前节点值相等&#xff1b;左子树的左节点与右子树的右节点对称&#xff1b;左子树的右节点与右子树的左节点对称。 终止条件&#xff1a; 两个节点均为空 → 对称&am…...

挖矿------获取以太坊测试币

文章目录 挖矿------获取以太坊测试币通过水龙头获取以太坊测试币了解Sepolia是什么&#xff1f;水龙头&#xff08;Faucet&#xff09;是什么&#xff1f;Gitcoin Passport是什么&#xff1f; 操作1.MetaMask钱包2.将MetaMask切换到Sepolia测试网络3.用MetaMask连接Gitcoin Pa…...

每天五分钟深度学习框架pytorch:基于pytorch搭建循环神经网络RNN

本文重点 我们前面介绍了循环神经网络RNN,主要分析了它的维度信息,其实它的维度信息是最重要的,一旦我们把维度弄清楚了,一起就很简单了,本文我们正式的来学习一下,如何使用pytorch搭建循环神经网络RNN。 RNN的搭建 在pytorch中我们使用nn.RNN()就可以创建出RNN神经网络…...

XEasyWork:面向AI应用的可视化工作流开发平台

文章目录 前言 一、平台核心价值 1.1产品定位 1.2 技术优势 二、技术架构解析 2.1战略级整合 自主开发模块 2.2集成开源项目 三、体验地址 三、未来规划 总结 前言 在人工智能技术快速落地的今天&#xff0c;开发者在构建AI应用时仍面临两大挑战&#xff1a;技术栈复杂带来的高…...

C#进阶(多线程相关)

1。进程&#xff1f; 进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;【是系统进行资源分配的基本单位】&#xff0c;是操作系统结构的基础。在早期面向进程设计的计算机结构中&#xff0c;进程是程序的基本执行实体&#xf…...

【C++】:C++11详解 —— 右值引用

目录 左值和右值 左值的概念 右值的概念 左值 vs 右值 左值引用 和 右值引用 左值引用 右值引用 左值引用 vs 右值引用 使用场景 左值引用的使用场景 左值引用的短板 右值引用的使用场景 1. 实现移动语义&#xff08;资源高效转移&#xff09; 2. 优化容器操作&a…...

【css酷炫效果】纯CSS实现虫洞穿越效果

【css酷炫效果】纯CSS实现穿越效果 缘创作背景html结构css样式完整代码基础版进阶版&#xff08;虫洞穿越&#xff09; 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90491973 缘 创作随缘&#xff0c;不定时…...

Linux IP 配置

Linux IP 配置 1 环境介绍2 网卡信息配置3 使用nmtui工具配置4 更多Linux命令学习使用列表 1 环境介绍 虚拟机&#xff0c;服务器安装系统完成后&#xff0c;先要配置ip 地址&#xff0c;这样可以方便远程若是物理服务器一般会有4个网卡信息麒麟v10&#xff0c;CentOS7&#x…...

设计模式之装饰器模式:原理、实现与应用

引言 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你通过将对象放入包含行为的特殊封装对象中来为原对象动态添加新的行为。装饰器模式提供了一种灵活的替代方案&#xff0c;避免了通过继承扩展功能的局限性。本文将深入探讨装…...

c语言笔记 结构体基础

目录 基础知识 结构体定义 基础知识 在c语言中变量是有类型的&#xff0c;比如整型&#xff0c;char型&#xff0c;浮点型等&#xff0c;这些都是单一的类型&#xff0c;那么如果说我要定义一个学生的信息&#xff0c;那么这些单一的类型是不足以表达一个学生的全部信息&#…...

Vue 登录 记住密码,设置存储时间

Vue 登录 记住密码&#xff0c;设置存储时间 一、手动存储login.vue 二、使用vue-cookies插件main.jslogin.vue 一、手动存储 login.vue 提示&#xff1a; // 设置cookie方法 setCookie(loginName, password, days) {let text encryptDes(password, des123)//使用des方法加…...

C++ 学习笔记(三)—— 入门+类和对象

1、内联函数&#xff08;inline&#xff09; 内联函数主要是解决C语言的宏的缺陷提出来的&#xff1b; 宏的缺陷&#xff1a; 1&#xff09;容易出错&#xff0c;语法坑很多&#xff1b; 2&#xff09;不能调试&#xff1b; 3&#xff09;没有类型安全的检查&#xff1b; 宏的…...

KVM安全模块生产环境配置与优化指南

KVM安全模块生产环境配置与优化指南 一、引言 在当今复杂多变的网络安全环境下&#xff0c;生产环境中KVM&#xff08;Kernel-based Virtual Machine&#xff09;的安全配置显得尤为重要。本指南旨在详细阐述KVM安全模块的配置方法&#xff0c;结合强制访问控制&#xff08;M…...

基于 SSE 和 WebSocket 的在线文本实时传输工具

简介 在线文本实时传输工具支持 SSE&#xff08;Server-Sent Events&#xff09; 和 WebSocket&#xff0c;可在不同设备间快速共享和同步文本&#xff0c;适用于跨设备协作、远程办公和即时通讯。 核心功能 实时同步&#xff1a;文本输入后&#xff0c;另一端用户可立即看到…...

数图亮相第三届全国生鲜创新峰会,赋能生鲜零售数字化转型

2025年3月15-18日&#xff0c;第三届全国生鲜创新峰会在湖北宜昌召开&#xff0c;主题为“生鲜破局&#xff0c;重塑价值”。峰会汇聚行业专家、企业领袖及精英&#xff0c;探讨生鲜零售新机遇与挑战。作为领先的“智慧零售”服务商&#xff0c;数图信息科技受邀出席&#xff0…...

go 安装swagger

1、依赖安装&#xff1a; # 安装 swag 命令行工具 go install github.com/swaggo/swag/cmd/swaglatest# 安装 gin-swagger 和 swagger 文件的依赖 go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files 2、测试 cmd中输入&#xff1a; swag -v 3、…...

CH347使用笔记:CH347结合STM32CubeIDE实现单片机下载与调试

目录 基于 STM32CubeIDE的 CH347 JTAG/SWD调试器使用说明1. CH347驱动安装与配置2. STM32CubeIDE调试器配置2.1 打开相关工程后&#xff0c;进行以下操作2.2 openocd.exe替换2.3 脚本添加2.4 更改调试器选择 3. 下载程序4. 使用过程中可能遇到的问题4.1 CH347未插入4.2 Openocd…...

从C语言开始的C++编程生活(1)

前言 本系列文章承接C语言的学习&#xff0c;需要有C语言的基础才能学会哦。 第1篇主要讲的是有关于C的命名空间、输入和输出。 C才起步&#xff0c;都很简单呢&#xff01; 目录 前言 命名空间namespace 基本语法 作用 使用命名空间 域作用限定符 :: 基本语法 using n…...

Python F-String 深度解析:原理、用法与最佳实践

# Python F-String 深度解析&#xff1a;原理、用法与最佳实践 ## 一、引言 Python 的 F-String&#xff08;格式化字符串字面值&#xff09;自 3.6 版本引入以来&#xff0c;凭借其简洁性和高效性&#xff0c;迅速成为字符串格式化的首选方案。本文将从原理、核心用法和编码规…...

智能家居分享

因为最近沉迷智能家居&#xff0c;所以来给大家分享一些轻松改变生活体验的小家具 1&#xff1a; 智能门锁 出门忘记带钥匙是许多人都遇到过的尴尬事&#xff0c;智能门锁的出现完美解决了这个困扰。智能门锁采用指纹识别、密码、刷卡、手机等多种开锁方式&#xff0c;大大增…...

20. Excel 自动化:Excel 对象模型

一 Excel 对象模型是什么 Excel对象模型是Excel图形用户界面的层次结构表示&#xff0c;它允许开发者通过编程来操作Excel的各种组件&#xff0c;如工作簿、工作表、单元格等。 xlwings 是一个Python库&#xff0c;它允许Python脚本与Excel进行交互。与一些其他Python库&#x…...

解决uni-app授权弹框华为审核拒绝

背景&#xff1a; 在使用定位、相机、文件、电话&#xff0c;需要用户同意授权时&#xff0c;华为和vivo需要告知用户使用权限目的。 方案&#xff1a; 在uni授权时&#xff0c;弹框告诉授权目的&#xff0c;效果如下&#xff1a; 代码&#xff1a; const perListener {//…...

施耐德PLC仿真软件Modbus tcp通讯测试

安装仿真软件&#xff1a;EcoStruxure™ Control Expert - PLC 仿真器 下载地址&#xff1a;https://www.schneider-electric.cn/zh/download/document/EIO0000001719/ 配置CPU&#xff1a; 切换至仿真模式&#xff0c;系统托盘中出现仿真器图标 新建变量test&#xff0c;地址…...

软考 中级软件设计师 考点知识点笔记总结 day05

文章目录 4、栈和队列4.1、栈的定义4.2、队列定义 5、串、数组、矩阵和广义表5.1、串5.2、 数组5.3、稀疏矩阵5.4、广义表 4、栈和队列 4.1、栈的定义 线性表是具有相同数据类型的n个数据元素的有限序列&#xff0c; n为表厂。n0时 线性表是一个空表 L &#xff08;a1,a2,a3…...

1.排序算法(学习自用)

1.冒泡排序 算法步骤 相邻的元素之间对比&#xff0c;每次早出最大值或最小值放到最后或前面&#xff0c;所以形象的称为冒泡。 特点 n个数排序则进行n轮&#xff0c;每轮比较n-i次。所以时间复杂度为O(n^2)&#xff0c;空间复杂度为O(1)&#xff0c;该排序算法稳定。 代码…...

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE&#xff0c;安装vs2017后无法使用了&#xff0c;在重新按照新版本arcgis engine或者arcObject费时费力&#xff0c;还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题&#xff0c;1&#xff1a;安装后vs中没有…...

基于yolo11+flask打造一个精美登录界面和检测系统

这个是使用flask实现好看登录界面和友好的检测界面实现yolov11推理和展示&#xff0c;代码仅仅有2个html文件和一个python文件&#xff0c;真正做到了用最简洁的代码实现复杂功能。 测试通过环境&#xff1a; windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.…...

用 Vue 3.5 TypeScript 重新开发3年前甘特图的核心组件

回顾 3年前曾经用 Vue 2.0 开发了一个甘特图组件&#xff0c;如今3年过去了&#xff0c;计划使用Vue 3.5 TypeScript 把组件重新开发&#xff0c;有机会的话再开发一个React版本。 关于之前的组件以前文章 Vue 2.0 甘特图组件 下面录屏是是 用 Vue 3.5 TypeScript 开发的目前…...

深入解析 SQL 事务:确保数据一致性的关键

SQL 事务 什么是 SQL 事务&#xff1f;事务的 ACID 特性原子性&#xff08;Atomicity&#xff09;:示例&#xff1a; 一致性&#xff08;Consistency&#xff09;:示例&#xff1a; 隔离性&#xff08;Isolation&#xff09;:持久性&#xff08;Durability&#xff09;:示例&am…...