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()
}
}