LeetCode:验证回文串【125】
LeetCode:验证回文串【125】
题目描述
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
题目分析
很明显这是双指针问题,回文判断的方式有很多种,最简单的是将原字符串逆序后判断两者是否相同。但是显然这里有干扰字符,所以无法直接使用这一方法。
那我们只好模拟回文的判断方法,就是两个指针分别从左右出发,遇到干扰字符跳过,遇到相同字符则接着向内靠拢,如果合法字符但是不相同,则不符合回文规律。
思路很清晰,但是最重要的是把细节扣好,比如双指针相遇的条件、干扰字符跳过、不合法的种种情况识别等等。
Java题解
class Solution {
public boolean isPalindrome(String s) {
s=s.toLowerCase().trim();
int left =0;
int right = s.length()-1;
while(left<right)
{
while(!isValid(s.charAt(left))&&left<right)
left++;
while(!isValid(s.charAt(right))&&left<right)
right--;
if(left>right)
return false;
if(s.charAt(left)!=s.charAt(right))
return false;
left++;right--;
}
return true;
} public boolean isValid(char c)
{
if((c>='0'&&c<='9')||(c>='a'&&c<='z'))
return true;
return false;
}
}
LeetCode:验证回文串【125】的更多相关文章
- leetcode 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...
- 前端与算法 leetcode 125. 验证回文串
目录 # 前端与算法 leetcode 125. 验证回文串 题目描述 概要 提示 解析 解法一:api侠 解法二:双指针 算法 传入测试用例的运行结果 执行结果 GitHub仓库 查看更多 # 前端 ...
- Java实现 LeetCode 125 验证回文串
125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, ...
- 力扣(LeetCode)验证回文串 个人题解
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...
- leetcode125. 验证回文串 python 简单
125. 验证回文串 难度简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: &quo ...
- LeetCode(125):验证回文串
Easy! 题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, ...
- 力扣(LeetCode)125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...
- leetcode 125. 验证回文串(python)
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...
- leetcode.字符串.125验证回文串-Java
1. 具体题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写.说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a pl ...
随机推荐
- js控制div内的滚动条的位置
通过div的scrollTop变动控制垂直滚动条位置. 通过div的scrollLeft变动控制水平滚动条位置. 示例: <body> //d1是外层div,带滚动条 <div id ...
- POJ 3687:Labeling Balls(优先队列+拓扑排序)
id=3687">Labeling Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10178 Acc ...
- 操作log.py
# 把双数日期的日志,里面给随便写点东西# 1.获取到log目录下的所有文件os.walk()# 2.根据文件名来判断,是否是双数日期,分割字符串,取到日期# 3.12%2==0# 4.打开这个文件 ...
- c#实现记事本
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 搭建Squid反向代理服务器
好吧,更新个文章,有段时间没写技术博文了.今天就说说squid反向代理这个服务,当然,这是在Linux下配置完成的.说自己没偏见似乎不可能 了.大概是相对喜欢Linux而已.但我从不否认Windows ...
- Python之布尔运算符
python中的布尔运算符有三种,or,and,not. 布尔运算,根据升序优先进行排序.运算 | 结果 | 提示=============================x or y | x假时,执 ...
- instantclient_11_2 连接oracle数据
(1)首先你要先下载instantclient (解压如下),修改你 instantclient/network/admin/tnsnames.ora 文件,将你oracle的服务器地址写上 ...
- C#中Lock静态字段和实例字段
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 【MIG专项测试组】如何准确评测Android应用的流畅度?
转自 腾讯Bugly 叶方正,2008年加入腾讯,就职于无线研发部[专项测试组].曾经负责多个产品的性能优化工作,积累大量的移动终端平台优化以及评测经验. 怎样获取SM值? 前文我们分析了通过测量应用 ...
- 通俗的解释下音视频同步里pcr作用
PCR同步在非硬件精确时钟源的情况还是谨慎使用,gstreamer里面采用PCR同步,但是发现好多ffmpeg转的片儿,或者是CP方的片源,pcr打得很粗糙的,老是有跳帧等现象.音视频同步,有三种方法 ...