ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

2697. 字典序最小回文串 --力扣 --JAVA

2026/8/6 5:38:16 拓冰建站 浏览量
2697. 字典序最小回文串 --力扣 --JAVA

题目

给你一个由 小写英文字母 组成的字符串 s ,你可以对其执行一些操作。在一步操作中,你可以用其他小写英文字母 替换  s 中的一个字符。

请你执行 尽可能少的操作 ,使 s 变成一个 回文串 。如果执行 最少 操作次数的方案不止一种,则只需选取 字典序最小 的方案。

对于两个长度相同的字符串 a 和 b ,在 a 和 b 出现不同的第一个位置,如果该位置上 a 中对应字母比 b 中对应字母在字母表中出现顺序更早,则认为 a 的字典序比 b 的字典序要小。

返回最终的回文字符串。

解题思路

  1. 将字符串转换成字符数组;
  2. 遍历字符数组,首位对称字符对比;
  3. 若不相同则将较小的字符赋值给较大的字符;

代码展示

class Solution {public String makeSmallestPalindrome(String s) {char[] chars = s.toCharArray();int n = chars.length;for (int i = 0; i < n / 2; i++){if(chars[i] != chars[n - 1 - i]){if(chars[i] > chars[n - 1 - i]){chars[i] = chars[n - 1 - i];} else {chars[n - 1 - i] = chars[i];}}}return new String(chars);}
}