(LeetCode 每日一题) 1328. 破坏回文串(字符串、贪心)

题目:1328. 破坏回文串

(LeetCode 每日一题) 1328. 破坏回文串(字符串、贪心)_第1张图片

思路:字符串为回文串,自然是修改前面部分的优先级大于后面部分的。

C++版本:

class Solution {
public:
    string breakPalindrome(string palindrome) {
        int n=palindrome.size();
        //字符串长度为1时,无法做到
        if(n==1) return "";
        //当字符串的前一半存在非'a'字符时
        for(int i=0;i<n/2;i++){
            if(palindrome[i]!='a'){
            	//将该位置置为'a'就是最小的符合要求的字符串
                palindrome[i]='a';
                return palindrome;
            }
        }
        //字符串除了中间位置外,都是'a'字符
        palindrome.back()='b';
        return palindrome;
    }
};

JAVA版本:

class Solution {
    public String breakPalindrome(String palindrome) {
        int n=palindrome.length();
        if(n==1) return "";
        char[] s=palindrome.toCharArray();
        for(int i=0;i<n/2;i++){
            if(s[i]!='a'){
                s[i]='a';
                return new String(s);
            }
        }
        s[n-1]='b';
        return new String(s);
    }
}

你可能感兴趣的:(LeetCode,java版刷题,leetcode,算法,职场和发展,java,c++)