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

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;
}


http://www.kler.cn/a/572859.html

相关文章:

  • Minix OS的配置 SSH C程序编译
  • 网络安全中分区分域
  • 001.words and phrases
  • 【Java 基础(人话版)】Java 虚拟机(JVM)
  • 创建自定义的Spingboot启动器
  • 基于云部署DeepSeek自动分析整合Dou音爆款视频数据
  • Session ID 和 Cookie 的配合机制
  • Oracle sqlplus命令-set
  • FFMPEG利用H264+AAC合成TS文件
  • 技术提升效率 实用工具改变生活
  • 华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命
  • deepseek本地集群部署调研
  • [Python入门学习记录(小甲鱼)]第0~2章:环境搭建、各种print、缩进和BIF内置函数
  • 软件测试:白盒测试详解
  • 能简述一下动态 SQL 的执行原理吗
  • 【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程
  • 【Python】如何解决Jupyter Notebook修改外部模块后必须重启内核的问题?
  • 【音视频】FFmpeg如何查询命令帮助文档
  • 交叉编译openssl及curl
  • 设计模式详解(单例模式)