当前位置:网站首页>LeetCode 131.分割回文串
LeetCode 131.分割回文串
2022-08-09 15:45:00 【老乐大魔王】
分割回文串
LeetCode 131 分割回文串 131
解题关键: 搜索+判断是否为子串是否为回文
预处理子串是否为回文串核心代码:
状态转移方程:g[i][j]=(s[i]==s[j])&&s[i+1][j-1]
i、j指针指向的字符要一致并且(i,j)的子串(i+1,j-1)为回文串
判断回文串完整代码:
for(int i=n-1;i>=0;i--)
for(int j=i+1;j<n;j++){
g[i][j]=(s[i]==s[j])&&g[i+1][j-1];
}
搜索核心代码:
void dfs(int i,const string &s){
if(i==s.size()){
ans.emplace_back(cur);
return;
}
for(int j=i;j<s.size();j++){
if(g[i][j]){
//这里可以改为记忆化搜索if(isPalindrome(s,i,j)==1)
cur.push_back(s.substr(i,j-i+1));
dfs(j+1,s)//j已经作为当前回文串的右边界,要从j+1处开始搜搜
cur.pop_back();//清除该层搜索记录
}
}
}
记忆化搜索核心代码:
//f[i][j]值为0表示还未搜索到,1表示(i,j)区间为回文串,-1表示(i,j)区间不是回文串
int isPalindrome(const string& s,int i,int j){
if(f[i][j]){
return f[i][j];
}
if(i>=j){
return f[i][j]=1;
}
return f[i][j]=(s[i]==s[j]&&isPalindrome(s,i+1,j-1));
}
边栏推荐
- 5G NR Paging
- 视频聊天源码——一对一直播如何提高直播质量?
- 网络——涉及的相关协议和设备汇总
- CocosCreator accesses WeChat mini-games
- 网络——TCP拥塞控制
- B45 - 基于STM32单片机的家庭防火防盗系统的设计
- 使用SourceTree添加SSH公钥并克隆码云项目(笔记整理篇)
- No need to pay for the 688 Apple developer account, xcode13 packaged and exported ipa, and provided others for internal testing
- MySQL 5.5 series installation steps tutorial (graphical version)
- std::uniform_real_distribution的一个bug引发的服务器崩溃
猜你喜欢
ESP8266-Arduino编程实例-MQ-5液化天然气传感器驱动
Became CTO, was killed by my boss in 6 months, I lost 10 million
uniapp 项目搭建
MySQL 5.5系列安装步骤教程(图解版)
Video chat source code - how to improve the quality of one-to-one live broadcast?
SQL抖音面试题:送你一个万能模板,要吗?(重点、每个用户每月连续登录的最大天数)
网络——2021年大题解析
一个程序员的水平能差到什么程度?
nacos控制台权限管理
<IDEA 使用小技巧&&常用键联合操作>
随机推荐
B43 - 基于STM32单片机的自动视力检测仪
Codeforces Round #808 (Div. 2)||Precipitation
【服务器数据恢复】SAN LUN映射出错导致文件系统数据丢失的数据恢复案例
六.数组越界问题引出对栈区内存的探索
5G NR Paging
Numpy数组索引/切片 多维度索引
B48 - 基于51单片机的学生管理门禁系统设计
2022年深圳杯数学建模A题代码思路-- 破除“尖叫效应”与“回声室效应”,走出“信息茧房”
uni-app覆盖组件样式h5生效,微信小程序不生效的问题
BETA:一个用于计算药物靶标预测的综合基准
一.字符 字符串 指针字符
三.两数交换 空指针 && 野指针 解引用问题
总结了 110+ 公开专业数据集
Leetcode——3.无重复字符的最长字串
PADS生成位号图
网络——数字数据编码
网络——IPV4地址(三)
微信开发者工具报错,提示 未找到入口 app.json 文件
智慧灯杆网关智慧交通应用
QT工程编译过程学习