抽象

  • 前言
  • 一、分割两个字符串得到回文串
  • 二、双指针
  • 总结
  • 参考文献

前言

抽象去个性留共性,是因为具体个性对于解决问题是个累赘。少了累赘,直击需求,才能进行问题转换或者逻辑转换。

一、分割两个字符串得到回文串

二、双指针

// 限定死了,在相同的下标处分开。
// 而其只要有一个能组成回文串即可。
// 回文是什么?前后对称相等。
// 暴力,从任何处分割,组合,再判定是否为回文串。
// ab两串相等,意味着分割之后组合的新字符串必定是和ab一样长的。
// 切割,能切几个算几个,反正字符串一样的就可以了,自字符串也好,它字符串也罢,管它谁提供的呐!解决问题足够抽象,没有感情!只有纯粹的需求。
// 一旦不能切了就只能看自己了。

func checkPalindromeFormation(a string, b string) bool {// 都是看别人家的尾吧是否合我的身子!return isVaild(a,b) || isVaild(b,a)}
// 先惦记别家的,再看自己有没;不能先用自己的,再惦记别家的,这不合规矩。
func isVaild(a,b string) bool {n := len(a)for i := 0;i < n >> 1;i++ {if a[i] != b[n - 1 - i] {// bug1:不一定是身子占主体,去惦记别人的字符;也有可能是尾巴占主体!return isPali(a,i) || isPali(b,i) // 以尾巴为主}}return true
}
func isPali(s string,start int) bool {n := len(s)for i := start;i < n >> 1;i++ {if s[i] != s[n - 1 - i] {return false}}return true
}

总结

1)有两类题,一类特点明显,可直觉看到特定类型的解法;一类需要具体分析,从背后发现潜在规律,寻找题解,这样一个完整的解题过程,该题属于第二种。
2)抛开具体的个性,直击需求,管它谁提供了这个需求,抽象成一种情况–提供需求。

参考文献

[1] LeetCode 分割两个字符串得到回文串

分割两个字符串得到回文串[抽象--去除具体个性取共性需求]相关推荐

  1. LeetCode 1616. 分割两个字符串得到回文串

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 a 和 b ,它们长度相同. 请你选择一个下标,将两个字符串都在 相同的下标 分割开. 由 a 可以得到两个字符串: aprefix 和 ...

  2. 力扣--让字符串成为回文串的最少插入次数

    力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...

  3. leetcode 高薪_利用两种不同的方法解LeetCode第1312题:让字符串成为回文串的最少插入次数

    题目描述(难度困难) 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符.请你返回让 s 成为回文串的 最少操作次数 . 「回文串」是正读和反读都相同的字符串. 示例 1: 输入: ...

  4. 字符串-验证回文串(双指针法)

    注: 回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 题意: 给定一个字符串,验证它是否是回文串,只考虑字 ...

  5. 字符串处理 —— 回文串相关 —— Manacher 算法

    [概述] Manacher 算法又称马拉车算法,用于求最长回文子串. 对于最长回文子串传统的求法的求法是以每个字符为中心,向两边寻找回文子串,在遍历完整个数组后即可得到最长回文子串,其时间复杂度为 O ...

  6. 字符串处理 —— 回文串相关 —— 添加/删除字符后是否为回文串

    [问题] 给定一个字符串,问对该字符串,是否能通过添加一个字符后变为回文串. 若可以,输出 YES,否则输出 NO 对于该问题,首先要明白,删除一个字符与添加一个字符在判断回文串中是等价的. [暴力枚 ...

  7. 字符串处理 —— 回文串相关 —— 求最长回文子串

    [暴力枚举] 求最长回文串最容易的方法就是暴力枚举,求出字符串的每一个子串,然后判断是不是回文,找到最长的那个回文串 求每一个子串的时间复杂度为 O(N^2),判断一个子串是不是回文时间复杂度为 O( ...

  8. 字符串--验证回文串

    问题来源:力扣算法面试汇总 问题描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 例子: 输入: "A ...

  9. LeetCode 1312. 让字符串成为回文串的最少插入次数(区间DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符. 请你返回让 s 成为回文串的 最少操作次数 . 「回文串」是正读和反读都相同的字 ...

最新文章

  1. 中国内地高校ESI排名出炉:342所大学上榜
  2. 中国机器翻译的世纪回顾
  3. 泉州服务器维修,泉州云服务器
  4. 8.Layout布局应用
  5. QT的QUrl类的使用
  6. Android Canvas绘制带箭头的直线
  7. hive 导出json格式 文件_hive支持json格式的数据
  8. hadoop2.8配置_Hadoop2.8.2安装与配置(单机)
  9. vscode 构建Python ,和C++ 开发环境
  10. [国家集训队]聪聪可可
  11. 微星 B450M MORTAR 盲刷BIOS
  12. 对应阻尼下的开环增益matlab,自动控制原理实验指导书MATLAB版解析.doc
  13. 什么是数据可视化技术
  14. Windows10系统自带的五笔输入法替换98字库
  15. 通过查看Qt助手(QtAssistant)了解并使用自己需要Qt库
  16. 计算机中bcd的中文意思,BCD码
  17. 苹果6现在多少钱_2020年苹果价格多少钱一斤?苹果种植成本利润分析
  18. 每天五分钟机器学习:如何使用单个神经元实现逻辑与、或的计算
  19. 背景差分运动目标检测
  20. ND4J/DL4J的内存管理:工作原理

热门文章

  1. java数据结构树部分(韩顺平版)
  2. exe msdt 无法上网_Win10专业版无法连接到此网络错误
  3. 英灵神殿修改服务器名字吗,《Valheim英灵神殿》服务器彩色名称设置教程及常见服务器问题讲解...
  4. python自动定位_自动化的8种元素定位 分享助:Python自动
  5. 找全了!一二线城市知名IT互联网公司名单(更新版)
  6. 河海大学MBA陈钢教授 开学讲座
  7. 全国DNS的IP一览
  8. 电话号归属地查询(携号转网除外)
  9. 128*128RGB屏驱动
  10. bibli直播弹幕实时爬取