当前位置: 首页 > news >正文

leetcode 1328. 破坏回文串 中等

给你一个由小写英文字母组成的回文字符串 palindrome ,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的 字典序最小 ,且 不是 回文串。

请你返回结果字符串。如果无法做到,则返回一个 空串 。

如果两个字符串长度相同,那么字符串 a 字典序比字符串 b 小可以这样定义:在 a 和 b 出现不同的第一个位置上,字符串 a 中的字符严格小于 b 中的对应字符。例如,"abcc” 字典序比 "abcd" 小,因为不同的第一个位置是在第四个字符,显然 'c' 比 'd' 小。

示例 1:

输入:palindrome = "abccba"
输出:"aaccba"
解释:存在多种方法可以使 "abccba" 不是回文,例如 "zbccba", "aaccba", 和 "abacba" 。
在所有方法中,"aaccba" 的字典序最小。

示例 2:

输入:palindrome = "a"
输出:""
解释:不存在替换一个字符使 "a" 变成非回文的方法,所以返回空字符串

提示:

  • 1 <= palindrome.length <= 1000
  • palindrome 只包含小写英文字母。

分析:由于给出的字符串一定是一个回文串,根据它的长度有两种情况。1、回文串长度为1,此时无论怎么修改都是回文串,因此返回空字符串;2、回文串长度大于1.此时可以修改。当回文串字符不全为‘a’时,把第一个不为‘a’的字符改为‘a’即可,否则将最后一个字符改为‘b’。

char* breakPalindrome(char* palindrome) {
    int len=strlen(palindrome);
    if(len==1)return "";
    for(int i=0;i<len/2;++i)
    {
        if(palindrome[i]!='a')
        {
            palindrome[i]='a';
            return palindrome;
        }
    }
    palindrome[len-1]='b';
    return palindrome;
}

相关文章:

  • FieldFox 手持射频与微波分析仪
  • 力扣刷题DAY5(二分/简单+滑动窗口/中等)
  • Composition API
  • 在 C++ 中,通常会使用 `#define` 来定义宏,并通过这种方式发出警告或提示。
  • 线程、进程
  • 大模型生成长度预测器
  • Solon AI —— RAG
  • 推流项目的ffmpeg配置和流程重点总结一下
  • 【Elasticsearch】Elasticsearch 中使用 HDFS 存储快照
  • 从vue源码解析Vue.set()和this.$set()
  • Checkpoint 模型与Stable Diffusion XL(SDXL)模型的区别
  • SpringBoot 异常处理
  • 【四.RAG技术与应用】【12.阿里云百炼应用(下):RAG的云端优化与扩展】
  • 靶场之路-VulnHub-DC-6 nmap提权、kali爆破、shell反连
  • 【MySQL】MySQL 复制
  • Git 批量合并 Commit 并且保留之前的 Commit 快速实现的思路
  • 【Jenkins】Pipeline流水线语法解析全集 -- 脚本式流水线、groovy语法
  • 数字后端培训实战项目六大典型后端实现案例
  • DeepSeek:构筑大数据平台底座的最优解
  • Unity3D 刚体动力学(Rigidbody Dynamics)详解
  • 做棋牌网站建设哪家便宜/互联网seo是什么意思
  • 开网站建设工作是如何/广州网站优化公司
  • 廊坊教育云网站建设/百度快照客服人工电话
  • 企业品牌营销策划/苏州吴中区seo关键词优化排名
  • 小面网站建设/网站排名优化手机
  • 想制作一个网站怎么来做/网页制作的软件有哪些