* 해당 포스트는 <파이썬 알고리즘 인터뷰> 공부 후 정리 목적으로 작성되었습니다. *
leetcode 344번 ( https://leetcode.com/problems/reverse-string/ )
풀이방법 1.
투 포인터를 사용한다. left 포인터는 문자열의 맨 처음에, right 포인터는 문자열의 맨 끝에 두고 다중 할당 방식을 이용해서 바꾼다.
파이썬에서 두 변수의 값을 바꿀 경우, 다른 언어들과는 달리 다중 할당을 이용해야 한다. 그렇지 않으면 예상하던 결과가 나오지 않을 수 있다. 파이썬에서는 다른 언어들과 달리 한 변수가 다른 변수에 할당될 때 값을 복사(call by value)하지 않고 값을 참조(call by reference)하기 때문이다.
값을 복사하는 다른 언어의 경우, 임시로 값을 저장할 다른 변수를 만들어서 swap 한다.
int a = 1; int b = 2;
// swap
int temp = a;
a = b;
b = temp;
System.out.println(a); # 2
System.out.println(b); # 1
반면 값을 참조하는 파이썬의 경우, 다중 할당을 이용한다.
a = 1
b = 2
# swap
a, b = b, a
print(a, b) # 2, 1
풀이방법 2.
파이썬에서 기본으로 제공하는 함수를 사용한다.
string.reverse()
text = "hello"
print(text.reverse()) # olleh
문자열이므로 기본 함수를 사용하지 않고 문자열 슬라이싱으로도 풀 수 있다.
text = "hello"
print(text[::-1]) # olleh
'알고리즘' 카테고리의 다른 글
ch6-6(leetcode 5). 가장 긴 팰린드롬 부분 문자열 (0) | 2023.01.10 |
---|---|
ch6-5(leetcode 49). 그룹 애너그램 (0) | 2023.01.09 |
ch6-4(leetcode 819). 가장 흔한 단어 (0) | 2023.01.09 |
ch6-3(leetcode 937). 로그 파일 재정렬 (0) | 2023.01.09 |
ch6-1(leetcode 125). 유효한 팰린드롬 (0) | 2023.01.09 |