To Be Developer

[LeetCode] 917. Reverse Only Letter Python 본문

알고리즘/LeetCode

[LeetCode] 917. Reverse Only Letter Python

Jeff Hwang 2019. 3. 27. 02:37
class Solution(object):
    def reverseOnlyLetters(self, S):
        
        # 파라미터를 List로 변경
        listS = list(S)
        # 리스트의 길이
        ln = len(listS)

        # 알파벳 나온 것을 reverse한 정보
        swap = []
        # swap할 index 저장소
        index = []

        # 0 ~ ln-1 반복
        for i in range(ln):
            # listS 의 원소가 알파벳인지 확인
            if listS[i].isalpha() :
                # index에 i 위치 정보를 append
                index.append(i)
                # swap에 listS[i] 맨 앞으로 삽입
                swap.insert(0, listS[i])
        
        # index의 길이
        indexLen = len(index)

        # index 길이 만큼 반복
        for i in range(indexLen):
            # 해당 인덱스에 swap 정보를 대입
            listS[index[i]] = swap[i]      
        
        # listS의 원소들을 String 형태로 합쳐 return
        return "".join(listS)

if __name__ == "__main__":
    inData = "ab-cd"
    
    print(Solution().reverseOnlyLetters(inData))

https://leetcode.com/problems/reverse-only-letters/