【Leetcode 逐日一题】1328. 粉碎回文串

打印 上一主题 下一主题

主题 985|帖子 985|积分 2957

问题背景

给你一个由小写英笔墨母构成的回笔墨符串                                    p                         a                         l                         i                         n                         d                         r                         o                         m                         e                              palindrome                  palindrome,请你将其中 一个 字符用任意小写英笔墨母替换,使得效果字符串的 字典序最小 ,且 不是 回文串。
请你返回效果字符串。假如无法做到,则返回一个 空串 。
假如两个字符串长度相同,那么字符串                                    a                              a                  a 字典序比字符串                                    b                              b                  b 小可以如许定义:在                                    a                              a                  a 和                                    b                              b                  b 出现差别的第一个位置上,字符串                                    a                              a                  a 中的字符严酷小于                                    b                              b                  b 中的对应字符。例如,"abcc” 字典序比 “abcd” 小,因为差别的第一个位置是在第四个字符,显然 ‘c’ 比 ‘d’ 小。
数据约束



  •                                         1                            ≤                            p                            a                            l                            i                            n                            d                            r                            o                            m                            e                            .                            l                            e                            n                            g                            t                            h                            ≤                            1000                                  1 \le palindrome.length \le 1000                     1≤palindrome.length≤1000
  •                                         p                            a                            l                            i                            n                            d                            r                            o                            m                            e                                  palindrome                     palindrome 只包含小写英笔墨母。
解题过程

从前今后将一个非正中心位置改成 ‘a’ 就可以,有两种特别情况,单个字符肯定是回文,直接返回空串;整个字符串都由 ‘a’ 构成,将最后一个字符改成 ‘b’ 即可。
详细实现

  1. class Solution {
  2.     public String breakPalindrome(String palindrome) {
  3.         int n = palindrome.length();
  4.         if (n == 1) {
  5.             return "";
  6.         }
  7.         char[] s = palindrome.toCharArray();
  8.         for (int i = 0; i < n / 2; i++) {
  9.             if (s[i] != 'a') {
  10.                 s[i] = 'a';
  11.                 return new String(s);
  12.             }
  13.         }
  14.         s[n - 1] = 'b';
  15.         return new String(s);
  16.     }
  17. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表