码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 编程练习【破环回文数】


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

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

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

     
    示例 1:

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

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

    题目来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/break-a-palindrome
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    思路:破环回文数,且需要破坏后字典序小,直接遍历回文串,找到第一个大于“a”的字符,将它替换成“a”即可,如果遍历完没有说明字符串全是“a”,那么直接将最后一个字符替换成“b”即可。

    代码:

    1. public static String breakPalindrome(String palindrome) {
    2. int len=palindrome.length();
    3. if(len==1) {//字符串长度为1时,返回“”
    4. return "";
    5. }
    6. for(int i=0;i<(len>>1);i++) {//只需要遍历字符串一半长度
    7. if(palindrome.charAt(i)>'a') {//找到第一个比‘a’的字符,替换成‘a’
    8. return palindrome.replaceFirst(palindrome.charAt(i)+"", "a");
    9. }
    10. }
    11. return palindrome.substring(0,len-1)+"b";//整个字符串没有,则将最后一个字符替换成‘b’
    12. }

  • 相关阅读:
    13. 机器学习——回归
    力扣146. LRU 缓存
    面部检测与特征分析:视频实时美颜SDK的核心组件
    微信小程序如何在公共组件中改变某一个页面的属性值
    Qt 中文件操作
    springboot整合mybatisPlus全技巧(2-常用开发技巧:通用字段插入)
    一次对pool的误用导致的.net频繁gc的诊断分析
    【Computer Vision】基于VGG-16实现中草药分类
    数字时代古文的传承———云南文化瑰宝“爨文化“(我为家乡发声)
    c#实现单例模式的两种方法(饿汉式、懒汉式)
  • 原文地址:https://blog.csdn.net/weixin_52237268/article/details/130894940
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号