개발공부/LeetCode

[Kotlin]String에 특수문자 제거, 띄어쓰기 제거(스페이스 제거), String 거꾸로 뒤집기, 소문자로변환 LeetCode :Valid PalindromeSolution

sean.jin 2021. 6. 24. 15:10
반응형
문제

Given a string s, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

 

s 가 palindrome(앞으로 읽어도 거꾸로 읽어도 같은 문자)인지 확인하는 문제입니다. 알파벳만 허용하고 특수문자는 모두 제거해줘야합니다. 

 

예시

풀이

우선 예시 1로 예를 들어보자면 A man, a plan, a canal: Panama 에서 특수기호와 대문자들을 소문자로 모두 바꿔주고 스페이스를 제거해주면 뒤로 읽으나 앞으로 읽으나 같은걸 볼수있습니다. 

저희가 string에 적용해줄 4가지입니다. 

1. 특수문자 제거(regex활용)

2. 대문자 소문자로 변환(tolowercase)

3. 공백 제거(스페이스 제거) (replace 활용)

4. 거꾸로 뒤집기(reversed())

 

마지막으로 거꾸로 뒤집은 string은 뒤집기전 String과 비교하여 같으면 true를 리턴하고 다르면 false를 리턴하도록 하겠습니다. 

 

class Solution {
   fun isPalindrome(s: String): Boolean{
    val regex = Regex("[^A-Za-z0-9]")//Regex를 활용하여 특수문자 없애주기
    val result = regex.replace(s, "").toLowerCase() //replace를 활용한 공백 지우기, 그리고 toLowerCase로 decapitalize(소문자화)
    result.filter { !it.isWhitespace() } // 공백 지워주기
   
    return result.reversed() == result //거꾸로 뒤집어진 결과가 뒤집기전과 같으면 true

	}
}

 

참고

 

 

toLowerCase - Kotlin Programming Language

 

kotlinlang.org

 

 

Remove non-alphanumeric characters from a string in Kotlin – Techie Delight

This article explores different ways to remove non-alphanumeric characters from a string in Kotlin... To remove all non-alphanumeric characters from the string, you have to create a new string.

www.techiedelight.com

 

 

How to remove all the whitespaces from a string in Kotlin?

I've already tried trim() but it only removes whitespaces before and after the text. I want something like this. var str= "This is an example text" output: Thisisanexampletext

stackoverflow.com

 

 

반응형