2697.字典序最小回文串
链接:2697.字典序最小回文串
难度:Easy
标签:贪心、双指针、字符串
简介:返回最终的回文字符串。
题解 1 - cpp
- 编辑时间:2023-12-13
- 执行用时:32ms
- 内存消耗:15.03MB
- 编程语言:cpp
- 解法介绍:同上。
class Solution {
public:
    string makeSmallestPalindrome(string s) {
        for (int i = 0; i < s.size() / 2; i++) {
            s[i] = s[s.size() - 1 - i] = min(s[i], s[s.size() - 1 - i]);
        }
        return s;
    }
};
题解 2 - python
- 编辑时间:2023-12-13
- 执行用时:148ms
- 内存消耗:16.23MB
- 编程语言:python
- 解法介绍:遍历。
class Solution:
    def makeSmallestPalindrome(self, s: str) -> str:
        arr = list(s)
        for i in range(len(arr) // 2):
            arr[i] = arr[len(arr) - 1 - i]= min(arr[i], arr[len(arr) - 1 - i])
        return ''.join(arr)
题解 3 - rust
- 编辑时间:2023-12-13
- 执行用时:8ms
- 内存消耗:2.35MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn make_smallest_palindrome(s: String) -> String {
        let mut arr = s.chars().map(|c| c as u8).collect::<Vec<u8>>();
        let n = arr.len();
        for i in 0..n / 2 {
            arr[i] = arr[i].min(arr[n - 1 - i]);
            arr[n - 1 - i] = arr[i];
        }
        String::from_utf8(arr).unwrap()
    }
}