首页 > 其他分享 >验证回文字符串

验证回文字符串

时间:2024-02-03 23:24:19浏览次数:29  
标签:字符 验证 int 示例 字符串 True 回文

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

示例 1:
输入: "aba"
输出: True

示例 2:
输入: "abca"
输出: True
解释: 你可以删除c字符。

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

public boolean validPalindrome(String s) {
        int l = 0;
        int r = s.length()-1;
        while(l<r){ //s [l,r]
            if(s.charAt(l) != s.charAt(r)){
                return isPalindrome(s,l,r-1) || isPalindrome(s,l+1,r);
            }
            l++;
            r--;
        }
        return true;
    }

    //判断字符串 s[i,j] 是否是回文串
    private boolean isPalindrome(String s, int i, int j) {
        while (i < j) {
            if (s.charAt(i++) != s.charAt(j--)) {
                return false;
            }
        }
        return true;
    }

参考:

标签:字符,验证,int,示例,字符串,True,回文
From: https://www.cnblogs.com/i9code/p/18005395

相关文章

  • 反转字符串中元音字母
    问题描述:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例1:输入:"hello"输出:"holle"示例2:输入:"leetcode"输出:"leotcede"classSolution{publicStringreverseVowels(Strings){if(s.length()<=1){return......
  • 反转字符串
    问题描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例1:输入:["h","e"......
  • 大胆假设小心验证——cf_922_C. XOR-distance
    目录问题概述思路想法参考代码问题反思问题概述给出整数a、b、r,要求输出|(a^x)-(b^x)|的绝对值,其中0<=x<=r(取值都是[0,1e18])思路想法首先是一个位置关系,由于求的是绝对值,所以我们可以假定a>b;第二,我们要做的是异或操作,因此可以将a和b的二进制数写出来,结合异或的特点,可以发......
  • c语言小练习——字符串长度、拷贝、拼接、比较
    /* 使用c语言知识实现下面程序: 1,实现strlen函数的功能 2,实现strcpy函数的功能 3,实现strcat函数的功能 4,实现strcmp函数的功能 不允许使用已有的str函数*/1#define_CRT_SECURE_NO_WARNINGS2#include<stdio.h>3#include<string.h>4#include<stdbool.h>5#......
  • 如何在 JavaScript 中验证 URL
    如何在JavaScript中验证URL统一资源定位符URL(UniformResourceLocator)引导你进入互联网上的一个页面或文件。URL是互联网上事物的地址。所有有效的URL都遵循某些模式。因此,如果你知道这些模式,你就可以在你的程序中确定一个URL是否有效,并给出反馈、抛出一个错误,等等。......
  • C语言解题||字符串左旋
    题目:实现一个函数,可以左旋字符串中的k个字符。例如:ABCD左旋1个字符得到BCDAABCD左旋2个字符得到CDAB代码实现:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<assert.h>#include<string.h>//除第1个外,全部往前1位,然后原第1个填充至极右voidLeft_reverse(......
  • 代码随想录算法训练营第十一天| 20. 有效的括号 1047. 删除字符串中的所有相邻重复
    20.有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。题目链接:20.有效的括号-力扣(LeetCode)思路:只......
  • 字符串操作(1)
    题目P10058[https://www.luogu.com.cn/problem/P10058]这道题要求对字符串进行指定的操作:循环移动和翻转因为要输出操作后的字符串,所以我们不妨在原字符串的基础上进行操作考虑循环移动:因为只需要输出最后一次,所以不难想到我们可以记录最后输出的字符串的第一位在哪里,那么我......
  • 对称字符串-od-python
    题目描述对称就是最大的美学,现有一道关于对称字符串的美学。已知:第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字符串:BRRBRBBR第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错!就是第个字符串=第i-1号字符串取反+第i-1号字符串取反(R->B,B->R)现在告诉你n......
  • C#之linq和lamda表达式GroupBy分组拼接字符串
    业务需求:点击提示信息,如:“售后单【SH001】序列号【001,002,006】;售后单【SH002】序列号【003,007,009】。已经过了质保期,确认要继续关闭吗” 核心代码://lamda表达式varerrorMsgObj=getNoPay.GroupBy(s=>s["FBILLNO"]+"").Select(d=>new{......