Daily LeetCode Challenge - 1544. Make The String Great

Min Young Kim·2022년 11월 8일
0

algorithm

목록 보기
26/198

Problem From.
https://leetcode.com/problems/make-the-string-great/

오늘 문제는 주어진 String 에서 같은 알파벳이 소문자 대문자 또는 대문자 소문자 순으로 나오면 그 부분을 삭제한 뒤 남은 String 을 반환하는 문제였다.

StringBuilder 가 문자열의 수정에는 String 보다 메모리상에서 더 높은 효율을 보여주므로, 주어진 string 을 StringBuilder 에 넣은뒤, 아스키코드 값의 차를 이용하여, 연속된 대문자와 소문자를 구분하였다.

class Solution {
    fun makeGood(s: String): String {
        
        var sb = StringBuilder(s)
        var isGood = false
        
        while(!isGood) {
            isGood = true
            
            for(i in 0 until sb.length - 1) {
                if(Math.abs(sb[i+1].toInt() - sb[i].toInt()) == 32) {
                    sb.delete(i, i+2)
                    isGood = false
                    break
                }
            }
        }
        
        return sb.toString()
    }
}
profile
길을 찾는 개발자

0개의 댓글