2697. 字典序最小回文串 --力扣 --JAVA
2023-12-13 23:59:50
题目
给你一个由?小写英文字母?组成的字符串?
s
?,你可以对其执行一些操作。在一步操作中,你可以用其他小写英文字母?替换??s
?中的一个字符。请你执行?尽可能少的操作?,使?
s
?变成一个?回文串?。如果执行?最少?操作次数的方案不止一种,则只需选取?字典序最小?的方案。对于两个长度相同的字符串?
a
?和?b
?,在?a
?和?b
?出现不同的第一个位置,如果该位置上?a
?中对应字母比?b
?中对应字母在字母表中出现顺序更早,则认为?a
?的字典序比?b
?的字典序要小。返回最终的回文字符串。
解题思路
- 将字符串转换成字符数组;
- 遍历字符数组,首位对称字符对比;
- 若不相同则将较小的字符赋值给较大的字符;
代码展示
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);
}
}
文章来源:https://blog.csdn.net/qq_45794129/article/details/134984666
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!