알고리즘/해결

LeetCode709. To Lower Case

언클린 2020. 1. 26. 17:30
728x90

1. 문제(원본)

Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.

 

Example 1:

Input: "Hello" Output: "hello"

 

Example 2:

Input: "here" Output: "here"

 

Example 3:

Input: "LOVELY" Output: "lovely"

 

2. 문제

임의의String 문자열을 받아 대문자를 소문자로 출력하라

 

3. 나의 답

class Solution {

    func toLowerCase(_ str: String) -> String {

        var resultString = ""

        for element in str {

            let asciiCode = element.asciiValue ?? 0

            if asciiCode > UInt8(64), asciiCode < UInt8(91) {

                resultString += String(UnicodeScalar(UInt8(asciiCode + 32)))

            } else {

                resultString += String(element)

            }

        }

        return resultString

//        return str.lowercased()

    }

}

4. 다른 유저의 답

 

#1

class Solution {

   

   func toLowerCase(_ s: String) -> String {

   

       var lower = ""

        

        for char in s.map({ String($0) }) {

            

            if let ascii = Character(char).asciiValue, ascii >= 65, ascii <= 90 {

                lower += String(Character(UnicodeScalar(ascii + 32)))

            } else {

                lower += String(char)

            }

        }

        return lower

    }

}

 

#2

class Solution {

    func toLowerCase(_ str: String) -> String {

        return str.lowercased()

    }

}

 

5. 마무리

솔직히 이번 문제는 보자마자 swift에서 제공하는 함수로 간단히 해결할 수가 있었다. 

하지만 문제 출제자의 의도는 Ascii코드였기 때문에 Ascii코드를 활용해서 풀어보았다. 

다른 풀이자의 답을 보니 배열의 map을 활용했는데 map을 이용한 방법을 배울 수 있었다.

728x90