首页 > 其他分享 >leetcode-05 最长回文子串

leetcode-05 最长回文子串

时间:2023-03-18 21:36:13浏览次数:39  
标签:count index right charAt 05 int 回文 leetcode left

题目描述:给你一个字符串 s,找到 s 中最长的回文子串。

解法一:中心扩散法

思想:令左右指针指向同一个元素,然后向两边扩散,并记录下最长长度 (L) 以及对应的起始位置 (index),最后返回字符串的子字符串

注意:在扩散之前,要排除所有的重复元素,从非重复元素开始扩散

           例如 " cabbad " 如果不考虑到中间的 " bb " 也属于回文字符串,就可能失去正确的答案。

class Solution {
    public String longestPalindrome(String s) {
        int index = 0;
        int L = 0;
        for (int i = 0; i < s.length(); i++) {
            int right = i;
            int left = i;
            int count = 0;
         while(right < s.length() && s.charAt(left) == s.charAt(right)){ right ++; count ++; } left--; while(left <= right && left >= 0 && right < s.length()){ if(s.charAt(left) == s.charAt(right)){ count += 2; left --; right ++; }else{ break; } } if(count > L){ L = count; index = left+1; } } return s.substring(index, index+L); } }

 

标签:count,index,right,charAt,05,int,回文,leetcode,left
From: https://www.cnblogs.com/potato-101/p/17231808.html

相关文章

  • 力扣---1616. 分割两个字符串得到回文串
    给你两个字符串a和b,它们长度相同。请你选择一个下标,将两个字符串都在相同的下标分割开。由a可以得到两个字符串:aprefix和asuffix,满足a=aprefix+asuffix,......
  • 算法 -- 分割两个字符串得到回文串
    分割两个字符串得到回文串提示中等114相关企业给你两个字符串a和b,它们长度相同。请你选择一个下标,将两个字符串都在相同的下标分割开。由a可以得到两个字符......
  • day05
    day05方法传参C++注释:C++有值调用和引用调用。引用参数标有&符号。例如,可以轻松地实现voidtripleValue(double&x)方法或voidswap(Employee&x,Employee&y)方法实现修改它们的......
  • django 迁移数据报错:django.db.utils.OperationalError: (1050, "Table 'xxx' alread
    方法1:登录数据库删除掉django创建数据表的所有数据内容、或者直接删掉所有表格。DROPTABLEtable_name;因为MySQL中设置了foreignkey关联,造成无法更新或删除数据。......
  • 代码随想录第二天 | 有序数组的平方_leetcode 长度最小的子数组_leetcode 螺旋矩阵
    有序数组的平方考虑到数组中元素存在负数的情况,数组元素平方之后,最大值存在于新数组的两边,这里采用“双指针法”可以满足时间复杂度为O(n)若对数组中的元素平方之后再去......
  • 【LeetCode贪心#08】根据身高重建队列(还是涉及处理两个维度的信息)
    根据身高重建队列力扣题目链接(opensnewwindow)假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i]=[hi,ki]表......
  • LeetCode.144 二叉树的前序遍历
    1.题目给你二叉树的根节点 ​​root​​ ,返回它节点值的 前序 遍历。 示例1:给你二叉树的根节点 ​​​root​​ ,返回它节点值的 前序 遍历。 ​输入:root=[1,nu......
  • LeetCode454. 四数相加 II
    题目描述:给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i,j,k,l) 能满足:0<=i,j,k,l<nnums1[i]+nums2[j]......
  • LeetCode 1005.K 次取反后最大化的数组和
    题目描述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下......
  • 【LeetCode贪心#07】分糖果
    发糖果力扣题目链接(opensnewwindow)老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些......