当前位置:网站首页>力扣练习——38 分割回文串
力扣练习——38 分割回文串
2022-08-02 04:18:00 【qq_43403657】
38 分割回文串
1.问题描述
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
返回 s 所有可能的分割方案的数量。
示例:
输入: “aab”
输出: 2
说明:可能的分割方案有:
[
[“aa”,“b”],
[“a”,“a”,“b”]
]
2.输入说明
输入一个字符串 s,长度小于等于200.
3.输出说明
输出一个整数
4.范例
输入
aab
输出
2
5.代码
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
vector<vector<string>>res;//结果数组
vector<string>temp;
bool isPalin(string s)
{
int n = s.length();
for (int i = 0; i < n/2; i++) //注意,这里只要遍历到一半即可
{
if (s[i] != s[n - 1 - i])
return false;
}
return true;
}
void backtrace(string s, int index)
{
int len = s.length();
if (index == len)//遍历到结尾
{
res.push_back(temp);
return;
}
for (int i = index; i < len; i++)
{
if (isPalin(s.substr(index, i - index + 1)))//重点理解下这里提取子串的操作
{
//访问到下标index,然后往后提取长度为1,2,etc的子串
//当i==index时,提取子串长度为1
temp.push_back(s.substr(index, i - index + 1));
backtrace(s, i + 1);//遍历到下一个位置
temp.pop_back();//回溯
}
}
}
int num_Partition(string s)
{
int len = s.length();
if (len == 0)
return 1;
//进行遍历回溯操作
backtrace(s, 0);
return res.size();
}
int main()
{
string s;
cin >> s;
int res = num_Partition(s);
cout << res << endl;
return 0;
}
边栏推荐
- What if some fields don't want to be serialized?
- 压缩包密码如何快速删除?
- Nexus 5 phone uses Nexmon tool to get CSI information
- 从事功能测试1年,裸辞1个月,找不到工作的“我”怎么办?
- ESP32-C5 简介:乐鑫首款双频 Wi-Fi 6 MCU
- 吴恩达机器学习系列课程笔记——第七章:正则化(Regularization)
- WordPress是什么?我也想用 WordPress~
- “数字化重构系统,搞定 CEO 是第一步”
- 无主复制系统(3)-Quorum一致性的局限性
- 【FreeRTOS】12 任务通知——更省资源的同步方式
猜你喜欢

7亿听众背后的在线音频掘金故事

Research Notes (6) Indoor Path Planning Method Based on Environment Perception

【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真

关于地图GIS开发事项的一次实践整理(上)

并发性,时间和相对性(1)-确定前后关系

CaDDN code debugging

详解CAN总线:什么是CAN总线?

Jetson Nano 2GB Developer Kit Installation Instructions

关于地图GIS的一次实践整理(下) Redis的GIS实践

吴恩达机器学习系列课程笔记——第九章:神经网络的学习(Neural Networks: Learning)
随机推荐
如果有些字段不想进行序列化怎么办?
列表总结
2022-08-01:以下go语言代码输出什么?A:panic;B:5;C:6;D:编译错误。 package main import ( “fmt“ ) func main() {
Platts Analysis-MATLAB Toolbox Function
Minecraft 1.18.1、1.18.2模组开发 23.3D动画盔甲制作
gergovia的交易tijie
PyQt5_pyqtgraph鼠标在折线图上画直线
W25Q16 存储器(Flash)
Research Notes (6) Indoor Path Planning Method Based on Environment Perception
吴恩达机器学习系列课程笔记——第九章:神经网络的学习(Neural Networks: Learning)
Deep Blue Academy - Fourteen Lectures of Visual SLAM - Chapter 4 Homework
DOM系列之 click 延时解决方案
Nuscenes数据集总结(下)
Scientific research notes (5) SLAC WiFi Fingerprint+ Step counter fusion positioning
(一)代码输出题 —— reverse
今天突然下雨
Jetson Nano 2GB Developer Kit Installation Instructions
falco 【1】入门
数据复制系统设计(2)-同步复制与异步复制
micro-ros arduino esp32 ros2 笔记