sean.jin
Spark Code Blog
sean.jin
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발공부
      • Kotlin
      • LeetCode
      • Algorithm
      • React
    • 주식차트
    • 책리뷰
    • 유틸리티

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 주식투자
  • 오
  • 책추천
  • 경제
  • 아빠와 딸의 주식투자 레슨
  • 주식책리뷰
  • 책
  • 트리플 위칭데이
  • 네마녀의날
  • 쿼드러플위칭데이
  • 변동성
  • 부의 추월차선
  • 주식입문자
  • 초보
  • 자기개발
  • 책리뷰

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin

Spark Code Blog

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

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

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

 

 

반응형

'개발공부 > LeetCode' 카테고리의 다른 글

[Kotlin] 선형리스트를 활용한 문제풀이 LeetCode: Delete Node in a Linked List  (0) 2021.07.09
[Kotlin] indexof 사용법 및 활용 LeetCode: Implement strStr() 쉬운풀이  (0) 2021.06.26
[Kotlin] map, hashmap 같은지 비교하기 LeetCode: Valid Anagram  (0) 2021.06.22
[Kotlin] String에서 반복되지않은 char찾기 - LeetCode: First Unique Character in a String  (0) 2021.06.20
[Kotlin] LeetCode: PlusOne 쉬운 풀이 해설  (0) 2021.06.14
    '개발공부/LeetCode' 카테고리의 다른 글
    • [Kotlin] 선형리스트를 활용한 문제풀이 LeetCode: Delete Node in a Linked List
    • [Kotlin] indexof 사용법 및 활용 LeetCode: Implement strStr() 쉬운풀이
    • [Kotlin] map, hashmap 같은지 비교하기 LeetCode: Valid Anagram
    • [Kotlin] String에서 반복되지않은 char찾기 - LeetCode: First Unique Character in a String
    sean.jin
    sean.jin
    앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

    티스토리툴바