LeetCode - 344. Reverse String

Jade J·2021년 1월 27일
0

Leetcode with Python

목록 보기
2/4

leetcode344

my try

  1. 스트링이 있는 리스트타입 데이터 s 를, 안의 원소들의 순서를 뒤집어야된다.

주의할점은 배열(여기선 리스트)를 새로 생성하지말고, 내부에서 바꾸는 함수를 정의해야 한다.

아래처럼 새로운 리스트타입 데이터인 snew 를 생성해서 원소를 거꾸로 넣는방법은, 제약에 걸린다.

  1. 생각할 수 있는 가장 간단한 방법은, reverse() 메소드를 이용하는 것이다.

s.reverse()

이 한줄로 리스트타입 s 는 안의 원소순서가 반대로 정렬된다.


solution

👈👉파이썬은 포인터가 없다.

하지만 포인터란 주소를 변수에 참조형으로 저장한것 뿐이다. 그러므로 포인터를 파이썬 코드를 이용해 임의적으로 설정할 수 있다.

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
     
        left = 0   #min index 0
        right = len(s)-1   #returns max index
        
        while left<right: #starting at 0<4 in this case
            
            
            # multiple assignment keeps the evaluation order right
            s[left],s[right] = s[right],s[left] 
            
            # code below returns different result
            #s[left] = s[right]
            #s[right]= s[left]
            
             
            left +=1
            right -=1
            

📌주의할점은, 파이썬에서 다중 assignment 할때는
s[left] 와 s[right] 가 동시에 할당 된다는 점이다.

그래서 각자를 한줄씩 따로따로 할때는 결과가 틀리게 나온다.

profile
개발의 길을 걷자

0개의 댓글

관련 채용 정보