算法题——双指针(错题总结)
双指针
题目引入:
167. Two Sum II - Input array is sorted (Easy)
88. Merge Sorted Array (Easy)
快慢指针
142. Linked List Cycle II (Medium)
滑动窗口
76. Minimum Window Substring (Hard)
错题总结
680. 验证回文串(难度:中等)
给你一个字符串 s
,最多 可以从中删除一个字符。
请你判断 s
是否能成为回文字符串:如果能,返回 true
;否则,返回 false
。
提交的错误答案:
class Solution {public boolean validPalindrome(String s) {if (s.length()==1){return true;}StringBuffer stringBuffer = new StringBuffer(s);if (stringBuffer.length()%2==1){stringBuffer.deleteCharAt(stringBuffer.length()/2);}Stack<Character> sta = new Stack<Character>();for (int i=0; i<stringBuffer.length()/2; i++){sta.push(stringBuffer.charAt(i));}for (int i=stringBuffer.length()/2; i<stringBuffer.length(); i++){if (sta.peek()!=stringBuffer.charAt(i)){return false;}sta.pop();}if (sta.empty()){return true;}return false;}
}
这里我没有读清楚题目,没有注意到删除一个字符仍然能成为回文字符串这一条件。这里我是直接验证普通回文串。思想是若字符串长度为奇数,则删除中间字符,若为偶数则将将前一半字符串压入栈中,再遍历后一半字符串,若相同则弹出栈,若遍历结束后栈为空则为回文字符串。若只是验证普通回文字符串则此解法是正确的,此题目正确答案参考官方解释。
524. 通过删除字母匹配到字典里最长单词(难度:中等)
给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。
如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。
这里我思考了8分钟,仍然没有思路,于是我参考了官方解释。
此算法思想为:先遍历字符串列表,判断字符串是否为参数的字串,使用双指针法比对,初始时两指针分别指向各字符串的第一个字符,若相同则同时后移一位,若不同则则只移动参数字符串,直到列表字符串移至最后一位则为字串,待判断出字串后则赋值给res,再判断列表中其他字符串,若遇到长度更长与字母序更小的字符串则更新答案。
官方代码:
class Solution {public String findLongestWord(String s, List<String> dictionary) {String res = "";for(String t : dictionary){int i=0, j=0;while(i<t.length() && j<s.length()){if(t.charAt(i) == s.charAt(j)){++i;}++j;}if(i==t.length()){if(t.length() > res.length() || (t.length() == res.length() && t.compareTo(res) <0)){res = t;}}}return res;}
}
算法题——双指针(错题总结)相关推荐
- 《考研计算机专业基础综合考试解析配套1000题》错题集20155314刘子健
<考研计算机专业基础综合考试解析配套1000题>错题集 By20155314刘子健 目录 数据结构部分 第一章 线性表 第二章 栈.队列和数组 第三章 树与二叉树 第四章 图 第五章 查找 ...
- 记录一下自己刷题的错题
记录一下自己刷题的错题 1.小v所在的公司即将举行年会,年会方案设计过程中必不可少的一项就是抽奖活动.小v在本次活动中被委以重任,负责抽奖活动的策划:为了让中奖的礼物更加精美且富有神秘感,打算采用礼品 ...
- Java基础题(错题小结)
Java基础题(错题小结) 1. 字符串 1.1 题1 下面程序的输出是: String x="fmn"; x.toUpperCase(); String y = x.replac ...
- 记录一下自己牛客网刷题的错题
1.广义表即我们通常所说的列表(lists).它放松了对表元素的原子性限制,允许他们有自身结构.那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为: 正确答案:1和4 解析:广义 ...
- 【计算机与UNIX汇编原理⑫】——汇编考前复习【重要知识点 + 基础题 + 易错题 + 难题解析】
✅ 本文主要是在汇编考试前的做的复习整理. 文章目录 第一章:微型计算机基础 第二章:80X86微处理器 第三章:汇编语言指令集 第四章:汇编语言程序设计 五.参考附录 EDG 加油!⌨️ 上一篇文章 ...
- HCIP/HCIE RoutingSwitching/Datacom备考宝典题库系列(一) OSPF题库(OSPF难理解题 易错题 易混题总结)
OSPF 协议不同的网络类型都可以形成 FULL 状态的邻接关系 正确 下面关于 OSPF 的描述正确的是: 选B OSPF采用SPF算法 OSPF LSUpdate不是周期性更新 而是触发式更新 O ...
- 全国计算机三级考试网络技术考过指南(一周就够了),知识点大全以及题库原题易错题补充
计算机三级考试网络技术考过指南 https://blog.csdn.net/qq_36829091/article/details/100593147 本篇文章是在上文基础上做的补充,主要针对其中的第 ...
- 计算机网络题库---错题本
(一)老生常谈 第一章: 1.什么是计算机网络?其主要功能是什么? 解答: 利用通信设备和线路,将分布在地理位置不同的.功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络中资源共享和信息传 ...
- 2020大学生网络安全知识竞赛总决赛模拟题易错题集(3)
1.DES是一种使用密钥加密的块算法,其英文全称是( ) A.Data Encryption Standard:B.Dynamic Encryption Standard:C.Dynamic Elli ...
- 2022年注册会计师财务管理历年真题易错题详解第一章
1.在资本市场有效的情况下,假设股东投资资本不变,下列各项中能够体现股东财富最大化这一财务管理目标的是().(单选题) A.利润最大化 B.每股收益最大化 C.每股股价最大化 D.公司价值最大化 解析 ...
最新文章
- python填写excel-Python向excel中写入数据的方法
- JAVA中反射的实现过程和作用分别是什么?
- MySQL——分页查询
- 四种依恋类型_“我值得被爱吗?”| 如何在亲密关系中培养安全型依恋
- 自定义ArcView-构造拓展性高的view
- web渗透--4--web渗透测试清单
- excel下拉列表多选框_将列表框添加到Excel工作表
- Centos7 Firewalld 自定义规则
- 在项目中后端开发所需要掌握的前端知识
- 不知道如何raw转换成jpg格式?可以试试这几个软件
- Maven项目引入JS,css等文件的问题
- 斯蒂文斯理工学院计算机科学硕士,2020年斯蒂文斯理工学院排名TFE Times美国最佳计算机科学硕士专业排名第80...
- 文本框的左视图不见了?
- ValueError: Invalid format specifier
- java中的常见异常1 -- 新手上路,减速慢行
- 解耦java_工厂模式实现解耦
- (1)Proteus 8.9上的STM32仿真系列(HAL)---流水灯
- 励志共勉一句话经典语录
- FPGA-基于UART的QVGA显示(一)(实现PC端发送字母数字汉字的分别显示)
- 写给我的第一部美剧--《越狱》
热门文章
- xx年xx月xx日xx时xx分xx秒——if版本
- 怎么用迅雷下载python_迅雷违规资源高速下载解决办法 python 源码
- python制作小黄人唱歌_小黄人音效制作方法图文教程
- 微信公众号开发------长链接转短链接接口
- 完美解决【 Failed to clean project: Failed to delete XXX】
- Day3 python基础3
- EOS中governor应用管理无法添加应用无法正确添加
- rancher忘记admin密码
- 最全Java成神学习路线总结!!!
- AI微信小程序源码下载照片AI转换动漫照片源码安装简单无需服务器域名