【Leetcode日常签到-1328】

时间 2025年2月8日

每日学习
  • 学习目标:回文字符串
  • 题目练习:leetcode 1328. 破坏回文串
    • 题目:由小写英文字母组成的回文字符串palindrome ,请你将其中一个字符用任意小写英文字母替换,使得结果字符串的字典序最小 ,且不是回文串,无法做到,则返回空串
    • 分析:
      由题意可知,要破坏回文字符串。
      有两种特殊情况:1.一个字符时,是无法破坏回文字符串的。2.当一个回文字符串都是a的时候
    public String breakPalindrome(String palindrome) {
        // 回文字符串特点,左右两边对称
        int n = palindrome.length();
        // 一个字符时,无法达到本题要求
        if (n <= 1) {
            return "";
        }
        char[] charArray = palindrome.toCharArray();
        // 因为回文字符串左右两边均相同,所以可以取一半
        for (int i = 0; i < n/2; i++) {
            if (charArray[i] != 'a') {
                charArray[i] = 'a';
                return new String(charArray);
            }
        }
        // 特殊情况,回文字符串都为a的情况下
        charArray[n-1] = 'b';
        return new String(charArray);
    }

你可能感兴趣的:(算法,leetcode)