LC 2697.Lexicographically Smallest Palindrome
题目描述
这是 LeetCode
上的 2697.
字典序最小回文串 ,难度为简单。
给你一个由 小写英文字母 组成的字符串 s
,你可以对其执行一些操作。在一步操作中,你可以用其他小写英文字母
替换 s
中的一个字符。
请你执行 尽可能少的操作 ,使 s
变成一个
回文串 。如果执行 最少
操作次数的方案不止一种,则只需选取 字典序最小
的方案。
对于两个长度相同的字符串 a
和 b
,在
a
和 b
出现不同的第一个位置,如果该位置上
a
中对应字母比 b
中对应字母在字母表中出现顺序更早,则认为 a
的字典序比
b
的字典序要小。
返回最终的回文字符串。
示例 1:
1 |
|
示例 2:
1 |
|
示例 3:
1 |
|
提示:
1 <= s.length <= 1000
s
仅由小写英文字母组成
解答
方法一:双指针
分别设定两个指针指向字符串的头和尾,然后遍历字符串,如果遇到不同的就替换成
ASCII
码值更小的字符。
1 |
|
时间复杂度:\(O(N)\),其中
N
是字符串的长度。空间复杂度:\(O(N)\),由于
Java
不能直接对字符串进行修改,需要创建临时字符数组来存储。
每题一图
LC 2697.Lexicographically Smallest Palindrome
https://chen-huaneng.github.io/2023/12/13/2023-12-13-2023-12-13-lc-2697/