LeetCode 1616. 分割两个字符串得到回文串
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你两个字符串 a 和 b ,它们长度相同。
请你选择一个下标,将两个字符串都在 相同的下标 分割开。
由 a 可以得到两个字符串: aprefix 和 asuffix
,满足 a = aprefix + asuffix
,同理,由 b 可以得到两个字符串 bprefix 和 bsuffix
,满足 b = bprefix + bsuffix
。
请你判断 aprefix + bsuffix 或者 bprefix + asuffix
能否构成回文串。
当你将一个字符串 s 分割成 sprefix 和 ssuffix 时, ssuffix 或者 sprefix 可以为空。
比方说, s = "abc"
那么 "" + "abc"
, "a" + "bc"
, "ab" + "c"
和 "abc" + ""
都是合法分割。
如果 能构成回文字符串 ,那么请返回 true,否则返回 false 。
请注意, x + y 表示连接字符串 x 和 y 。
示例 1:
输入:a = "x", b = "y"
输出:true
解释:如果 a 或者 b 是回文串,那么答案一定为 true ,因为你可以如下分割:
aprefix = "", asuffix = "x"
bprefix = "", bsuffix = "y"
那么 aprefix + bsuffix = "" + "y" = "y" 是回文串。示例 2:
输入:a = "ulacfd", b = "jizalu"
输出:true
解释:在下标为 3 处分割:
aprefix = "ula", asuffix = "cfd"
bprefix = "jiz", bsuffix = "alu"
那么 aprefix + bsuffix = "ula" + "alu" = "ulaalu" 是回文串。提示:
1 <= a.length, b.length <= 105
a.length == b.length
a 和 b 都只包含小写英文字母
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/split-two-strings-to-make-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution {public:bool checkPalindromeFormation(string a, string b) {int l = 0, r = a.size()-1;while(l < r && a[l] == b[r])//先找出a的前缀 和 b的后缀的逆序 相同的{l++, r--;}if(ispalind(a.substr(l, r-l+1)) || ispalind(b.substr(l, r-l+1)))return true;l = 0, r = a.size()-1;while(l < r && b[l] == a[r])// 找出b的前缀 和 a的后缀的逆序 相同的{l++, r--;}if(ispalind(a.substr(l, r-l+1)) || ispalind(b.substr(l, r-l+1)))return true;return false;}bool ispalind(string s){int l = 0, r = s.size()-1;while(l < r){if(s[l++] != s[r--])return false;}return true;}
};
256 ms 28.4 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1616. 分割两个字符串得到回文串相关推荐
- 分割两个字符串得到回文串[抽象--去除具体个性取共性需求]
抽象 前言 一.分割两个字符串得到回文串 二.双指针 总结 参考文献 前言 抽象去个性留共性,是因为具体个性对于解决问题是个累赘.少了累赘,直击需求,才能进行问题转换或者逻辑转换. 一.分割两个字符串 ...
- 力扣--让字符串成为回文串的最少插入次数
力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...
- leetcode 高薪_利用两种不同的方法解LeetCode第1312题:让字符串成为回文串的最少插入次数
题目描述(难度困难) 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符.请你返回让 s 成为回文串的 最少操作次数 . 「回文串」是正读和反读都相同的字符串. 示例 1: 输入: ...
- 怎么判断一个字符串的最长回文子串是否在头尾_【Leetcode每日打卡】最长回文串...
干货预警:所有文章都会首发于我的公众号[甜姨的奇妙冒险],欢迎watch. 一.来历: 力扣从3月开始开启了每日一题打卡活动,于是跟风加入了打卡大军,这两天写评论.发题解,没想到反响还不错,收到了来自 ...
- LeetCode 1312. 让字符串成为回文串的最少插入次数(区间DP)
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符. 请你返回让 s 成为回文串的 最少操作次数 . 「回文串」是正读和反读都相同的字 ...
- leetcode 探索 数组和字符串 验证回文串
问题 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, ...
- 字符串-验证回文串(双指针法)
注: 回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 题意: 给定一个字符串,验证它是否是回文串,只考虑字 ...
- 字符串处理 —— 回文串相关 —— Manacher 算法
[概述] Manacher 算法又称马拉车算法,用于求最长回文子串. 对于最长回文子串传统的求法的求法是以每个字符为中心,向两边寻找回文子串,在遍历完整个数组后即可得到最长回文子串,其时间复杂度为 O ...
- 字符串处理 —— 回文串相关 —— 添加/删除字符后是否为回文串
[问题] 给定一个字符串,问对该字符串,是否能通过添加一个字符后变为回文串. 若可以,输出 YES,否则输出 NO 对于该问题,首先要明白,删除一个字符与添加一个字符在判断回文串中是等价的. [暴力枚 ...
最新文章
- android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键
- Linux学习——shell编程之变量
- 大数据让人们得到更加细致和人性化的服务
- Spring(19)——Profile(二)
- JSP简单练习-javaBean的简单应用
- OpenGL DoubleWrite的实例
- 没有梦想,你跟咸鱼有什么分别?
- [ python ] 基础技巧
- spark学习-Spark的Map()和FlatMap()函数使用
- 使用LoadBalancerClient就行服务消费
- ASP.NET学生管理系统(.NET毕业设计)
- php 动态生成网站地图,DedeCMS网站地图动态生成方法
- FAST迅捷路由器设置
- SpringSecurity系列——会话管理,CSRFday8-1(源于官网5.7.2版本)
- Unity3d地图制作之模型高光
- 【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- 全球及中国富维生素矿物质食品行业研究及十四五规划分析报告
- java 家庭电视类_Java-家中的电视机
- 2022-09-08 mysql/stonedb-慢SQL-记录
- 更改 IE 收藏夹 位置
热门文章
- pcie1 4 速度_太阳系行星们谁转得最快?八大行星自转速度排行榜,地球排第五...
- java实现控件绑定数据源_控件(三)——TreeView控件以XmlDataSource控件为数据源实现简单的绑定...
- linux 下安装部署mq,RocketMQ在linux下安装部署
- 环境变量bootcmd、bootargs的参数含义
- linux驱动简单介绍
- android设置访问internet权限
- 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)
- SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中
- 微软Webcast课程下载软件iReaper正式登陆Android平台
- Symbian中不能跨越线程(RThread)使用的对象/组件(RSocket/Memery Heap,etc)