엔지니어 게시판
LeetCode 솔루션 분류

[10/10] 1328. Break a Palindrome

컨텐츠 정보

본문

Medium
865464Add to ListShare

Given a palindromic string of lowercase English letters palindrome, replace exactly one character with any lowercase English letter so that the resulting string is not a palindrome and that it is the lexicographically smallest one possible.

Return the resulting string. If there is no way to replace a character to make it not a palindrome, return an empty string.

A string a is lexicographically smaller than a string b (of the same length) if in the first position where a and b differ, a has a character strictly smaller than the corresponding character in b. For example, "abcc" is lexicographically smaller than "abcd" because the first position they differ is at the fourth character, and 'c' is smaller than 'd'.

 

Example 1:

Input: palindrome = "abccba"
Output: "aaccba"
Explanation: There are many ways to make "abccba" not a palindrome, such as "zbccba", "aaccba", and "abacba".
Of all the ways, "aaccba" is the lexicographically smallest.

Example 2:

Input: palindrome = "a"
Output: ""
Explanation: There is no way to replace a single character to make "a" not a palindrome, so return an empty string.

 

Constraints:

  • 1 <= palindrome.length <= 1000
  • palindrome consists of only lowercase English letters.
Accepted
78,018
Submissions
150,673

관련자료

댓글 1

학부유학생님의 댓글

  • 익명
  • 작성일
Runtime: 59 ms, faster than 30.01% of Python3 online submissions for Break a Palindrome.
Memory Usage: 13.8 MB, less than 61.62% of Python3 online submissions for Break a Palindrome.
class Solution:
    def breakPalindrome(self, palindrome: str) -> str:
        if len(palindrome) <= 1: return ""
        palindrome = list(palindrome)
        ptr = 0
        
        while ptr < len(palindrome) and palindrome[ptr] == "a":
            ptr+=1
            if len(palindrome)%2 and ptr == len(palindrome)//2:
                ptr+=1
        
        if ptr < len(palindrome): 
            palindrome[ptr] = "a"
            return "".join(palindrome)
        
        palindrome[-1] = "b"
        return "".join(palindrome)
전체 396 / 3 페이지
번호
제목
이름

최근글


인기글


새댓글


Stats


  • 현재 접속자 186 명
  • 오늘 방문자 5,697 명
  • 어제 방문자 5,332 명
  • 최대 방문자 11,134 명
  • 전체 회원수 1,048 명
알림 0