Leetcode 680.验证回文字符串

验证回文字符串

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

示例 1:

输入: "aba"

输出: True

示例 2:

输入: "abca"

输出: True

解释: 你可以删除c字符。

注意:

  1. 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。

 1 class Solution {
 2     public boolean isPalindromeRange(String s, int i, int j) {
 3         for (int k = i; k <= i + (j - i) / 2; k++) {
 4             if (s.charAt(k) != s.charAt(j - k + i)) return false;
 5         }
 6         return true;
 7     }
 8     public boolean validPalindrome(String s) {
 9         for (int i = 0; i < s.length() / 2; i++) {
10             if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {
11                 int j = s.length() - 1 - i;
12                 return (isPalindromeRange(s, i+1, j) ||
13                         isPalindromeRange(s, i, j-1));
14             }
15         }
16         return true;
17     }
18 }

原文地址:https://www.cnblogs.com/kexinxin/p/10400339.html

时间: 2024-11-05 14:56:12

Leetcode 680.验证回文字符串的相关文章

前端与算法 leetcode 125. 验证回文串

目录 # 前端与算法 leetcode 125. 验证回文串 题目描述 概要 提示 解析 解法一:api侠 解法二:双指针 算法 传入测试用例的运行结果 执行结果 GitHub仓库 查看更多 # 前端与算法 leetcode 125. 验证回文串 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: tru

Validate Palindrome 验证回文字符串

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, "race a car" is not a palindrome. Note:Have you consider that the string might be empty? This is a good question to ask du

力扣(LeetCode)验证回文串 个人题解

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 这题是验证回文串的一个变种,因为里面有干扰的字符串存在,不能直接判断,不过也很好解决,直接添加过滤的语句,遇到不是数字且不是字母的直接跳过,只有两边都是合法的,才进行比

验证回文字符串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 输入: "A man, a plan, a canal: Panama" 输出: true 代码: 思路,这里涉及到了数据清洗,我只要字母和数字,并且字母必须是小写.使用 string,isalnum()可以滤出字母和数字,使用 string.lower()可以滤出小写字母.然后再转换成 list 反转对比即可. http://www.runoob.com/python/python-strings.ht

力扣(LeetCode)验证回文串 个人题解(C++)

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 题目已经做过,这里只是重新使用C++编写代码.较为简单,不解答题目,没有使用内置函数(因为不熟:<). class Solution { public: bool

初级算法-16. 验证回文字符串

题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 一种解法是将字符串的有效字符存入数组中,再去比较 1 class Solution { 2 public boolean isPalindrome(Stri

[LeetCode] 125. 验证回文串

题目链接 : https://leetcode-cn.com/problems/valid-palindrome/ 题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例: 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 思路: 思路一: 用正则提取字母

[LintCode] Valid Palindrome 验证回文字符串

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. Notice Have you consider that the string might be empty? This is a good question to ask during an interview. For the purpose of this problem

Leetcode 125.验证回文串 By Python

思路 显然一个字符串不止包括字母和数字字符,所以我们可以先提取出来我们要进行比较的字符 还有一个问题是,字母是分大小写的,我们要统一大写或者统一小写,就是规范化 代码 class Solution(object): def isPalindrome(self, s): """ :type s: str :rtype: bool """ letters = string.ascii_letters digits = string.digits s