LeetCode 刷题日记(12.13)
以下仅为个人见解,有不对的地方,望指正,感谢
题目 字典序最小回文串
难度 :简单
题目大意:给定一个只有小写字母字符串s
,可以执行的操作是将s
中的一个字符变为任意的字符,要求将s
变化为回文串并且变化之后的s
字典序最小,最少需要几步
回文串一般思路:
双指针
- 用前后指针扫描整个字符串,对字符串处理,最后终止条件是两个指针指向同一个位置,或者是前指针位置大于后指针的位置
字典序最小
- 可以在枚举的时候,将两个指针指向的字符换成两个字符当中的更小的字符即可,这样可以保证字典序是最小的
实现代码如下:
class Solution {
public:
string makeSmallestPalindrome(string s) {
for (int i = 0, j = s.size() - 1; i < j; i ++, j --) {
if ( s[i] != s[j]) {
if (s[i] < s[j]) s[j] = s[i];
else s[i] = s[j];
}
}
return s;
}
};
总结 :
- 难度不大,思考起来还是比较顺利的
结束了