C语言 | Leetcode C语言题解之第5题最长回文子串

news2024/11/23 10:28:37

题目:

题解:


char* longestPalindrome(char* s) {
    int len=strlen(s),max=0;
    int p=0;
    for(int i=0;i<len;i++)//这种是判断奇数回文
    {
        int left=i-1,right=i+1;//left左边,right右边
        while(left>=0&&right<len&&s[left]==s[right]){//是回文向两边扩
            left--;
            right++;
        }
        if(right-left+1-2>max){//其实这里本质是right-left+1但是因为是一个while有个left--和right++则要多减2,
       //例如left==0,right==2但是出while循环后left==-1,right==3,用原来的就不对了
            max=right-left+1-2;//max代表回文长度
            p=left+1;//加1代表回文的最左字符下标,不带则不对
        }
    }
         for(int i=0;i<len;i++)//判断偶数大致与奇数相同
    {
        int left=i,right=i+1;//偶数的话例如abccba他是先c c后向两边扩
        while(left>=0&&right<len&&s[left]==s[right]){
            left--;
            right++;
        }
        if(right-left+1-2>max){
            max=right-left+1-2;
            p=left+1;
        }
    }
    s[p+max]='\0';//这里相当于在原字符串上重新弄个字符串,例如aba,p==0,max==3,p+max==3,s[p+max]='\0'==s[3]='\0',在回文字符串的最右边位'\0'
    return p+s;//p+s是最左边回文开始的首元素,返回新字符串
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1566377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:logrotate日志轮循分割

比如httpd产生的日志&#xff0c;如果你没做任何设置&#xff0c;他会一直把日志都输出到一个文件中&#xff0c;这个文件会越来越大&#xff0c;httpd就有一个日志切割工具&#xff0c;他可以去分割你的日志&#xff0c;但是无法去轮循日志 日志切割的作用&#xff1a;防止文件…

【氮化镓】同质GaN垂直PiN二极管的SEB

【Single-event burnout in homojunction GaN vertical PiN diodes with hybrid edge termination design. Appl. Phys. Lett. 124, 132101 (2024)https://doi.org/10.1063/5.0189744】 概括&#xff1a; 本研究探讨了具有混合边缘终止设计&#xff08;Hybrid Edge Terminati…

实验2:CLI的使用与IOS基本命令

1、实验目的 通过本实验可以掌握&#xff1a; CLI的各种工作模式个CLI各种编辑命令“?” 和【Tab】键使用方法IOS基本命令网络设备访问限制查看设备的相关信息 2、实验拓扑 CLI的使用与IOS基本命令使用拓扑如下图所示。 3、实验步骤 &#xff08;1&#xff09;CLI模式的切…

PCB设计中的EMC技术

除了元器件的选择和电路设计之外&#xff0c;良好的印制电路板&#xff08;PCB&#xff09;设计在电磁兼容性中也是一个非常重要的因素。PCB EMC设计的关键&#xff0c;是尽可能减小回流面积&#xff0c;让回流路径按照设计的方向流动。最常见返回电流问题来自于参考平面的裂缝…

什么是幂等性?如何解决幂等性问题?

一、什么是幂等性&#xff1f; 幂等&#xff08;idempotence&#xff09;&#xff0c;来源于数学中的一个概念&#xff0c;例如&#xff1a;幂等函数/幂等方法&#xff08;指用相同的参数重复执行&#xff0c;并能获得相同结果的函数&#xff0c;这些函数不影响系统状态&#x…

烂笔头笔记:Windows 11下照片查看器显示偏色问题修复

本文出处&#xff1a;http://blog.csdn.net/chaijunkun/article/details/137278931&#xff0c;转载请注明。由于本人不定期会整理相关博文&#xff0c;会对相应内容作出完善。因此强烈建议在原始出处查看此文。 最近在研究HDR视频的截图算法&#xff0c;目的就是生成色彩正确…

pytest--python的一种测试框架--接口测试

接口测试 工具&#xff1a; POSTMAN&#xff1b; 接口选择&#xff1a; 豆瓣电影&#xff0c;进制数据 POSTMAN下载&#xff1a; 1.POSTMAN官网&#xff1a;https://www.postman.com/products/&#xff1b; 2.点product选Download Postman 下载完之后双击打开就可以用的。…

MVCC的实现原理

简介 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;即多版本并发控制。 MVCC的实现原理 我们在了解MVCC之前&#xff0c;首先先了解一下几个比较常见的锁。 **读锁&#xff1a;**也叫共享锁、S锁&#xff0c;若事务T对数据对象A加上S锁&#xff0c;则事务…

HarmonyOS应用开发ArkUI(TS)电商项目实战

项目介绍 本项目基于 HarmonyOS 的ArkUI框架TS扩展的声明式开发范式&#xff0c;关于语法和概念直接看官网官方文档地址&#xff1a;基于TS扩展的声明式开发范式&#xff0c; 工具版本&#xff1a; DevEco Studio 3.1 Canary1 SDK版本&#xff1a; 3.1.9.7&#xff08;API V…

说说你对数据结构-树的理解

对树 - 二叉搜索树的理解 二叉搜索树是一种常见的二叉树结构&#xff0c;它具有以下特点&#xff1a; 每个节点最多只有两个子节点&#xff0c;分别称为左子节点和右子节点&#xff1b;对于任意节点&#xff0c;其左子树中的所有节点均小于该节点&#xff0c;其右子树中的所有…

linux 回收站机制(笔记)

Linux下回收站机制https://mp.weixin.qq.com/s/H5Y8VRcaOhFZFXzR8yQ7yg 功能 &#xff1a;设立回收站&#xff0c;并且可定时清空回收站。 一、建议将alias rm 改成别的。 比如alias rmm &#xff0c;同时修改rm -rf ~/.trash/* 改成 rmm -rf ~/.trash/* 不然影响rm 的正常使…

JUC:synchronized优化——锁的升级过程(偏向锁->轻量级锁->重量级锁)以及内部实现原理

文章目录 锁的类型轻量级锁重量级锁自旋优化偏向锁偏向锁的细节偏向锁的撤销批量重偏向批量撤销锁消除 锁的类型 重量级锁、轻量级锁、偏向锁。 加锁过程&#xff1a;偏向->轻量级->重量级 轻量级锁 轻量级锁的使用场景&#xff1a;如果一个对象虽然有多线程要加锁&am…

OpenHarmony Neptune开发板-MQTT连接华为IoT平台

本示例将演示如何在Neptune开发板上使用MQTT协议连接华为IoT平台,使用的是ATH20温湿度传感器模块与Neptune开发板 本示例实现AHT20温湿度数据上报华为IoT平台,IoT平台下发命令控制LED灯的开关 使用W800 SDK功能包中libemqtt来实现连接华为IoT平台 程序设计 初始化 一、MQT…

k8s 基础入门

1.namespace k8s中的namespace和docker中namespace是两码事&#xff0c;可以理解为k8s中的namespace是为了多租户&#xff0c;dockers中的namespace是为了网络、资源等隔离 2.deployment kubectl create #新建 kubectl aply #新建 更新 升级&#xff1a; 滚动升级&#x…

Find a way (DFS BFS)

//新生训练 #include <iostream> #include <algorithm> #include <queue> using namespace std; using PII pair<int, int>;const int N 205; const int inf 0x3f3f3f3f; int n, m; int l;int dis1[N][N]; int dis2[N][N];int dx[] {0, 0, -1, 1};…

HarmonyOS入门--页面和自定义组件生命周期

文章目录 页面和自定义组件生命周期页面生命周期组件生命周期生命周期的调用时机 页面和自定义组件生命周期 生命周期流程如下图所示&#xff0c;下图展示的是被Entry装饰的组件&#xff08;首页&#xff09;生命周期。 自定义组件和页面的关系&#xff1a; 自定义组件&…

zabbix绑定钉钉进行通知,网页端添加JavaScript,无脑式操作

文章目录 前言一、编辑zabbix告警JavaScript脚本二、代码如下:编辑消息模板,自定义markdown格式的消息。总结前言 随着人工智能的不断发展,zabbix监控这门技术也越来越重要,一下进入正题。 一、编辑zabbix告警JavaScript脚本 没有没接可以新增媒介 其中URL是你的机器人地…

Linux系统——网络管理

此文章以红帽Linux9版本为例进行讲解。 红帽Linux9版本的网络管理十分全面&#xff0c;可在多处进行网络配置的修改&#xff0c;但需要注意的是&#xff0c;在9版本内&#xff0c;用户可在配置文件内进行网络配置的修改&#xff0c;但系统不会执行修改的命令&#xff0c;而在9之…

redis之主从复制、哨兵模式

一 redis群集有三种模式 主从复制&#xff1a; 主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。 主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均衡和简单的故障恢复。 缺陷&#xff1a; 故障恢复无法自动化&…

西圣、飞利浦、万魔开放式耳机好用吗?热门产品硬核测评对比

在无线耳机市场中&#xff0c;开放式耳机因其独特的佩戴方式和出色的听音体验逐渐受到消费者的青睐&#xff0c;西圣、飞利浦、万魔作为业内知名品牌&#xff0c;都推出了各自的开放式耳机产品&#xff0c;备受关注&#xff0c;那么这些热门品牌的开放式耳机究竟好用吗&#xf…