-
github.com/onlybooks/algorithm-interview
시간이 조금 남아서 짧게 하나만 하고 자야겠다.
문자열을 뒤집는 방법
1. 전통적인 방법: 투포인터
아래 코드를 보고 왜 굳이 이렇게..? 라고 생각했지만, 가끔 코테에서 라이브러리를 사용하지않고 함수 자체를 구현하라고 한적이 있었다.
def reverseString(self, s:List[str])->None: left, right = 0, len(s) -1 while left < right: s[left], s[right] = s[right],s[left] left+=1 right-=1
당연히 리스트는 a.reverse(), [::-1] 슬라이싱을 이용해서도 뒤집을 수 있다.
이.때 공간복잡도 O(1) 제약이 걸린 leetcode는 [::-1]이 먹히지 않으므로 s[:]=s[::-1]을 사용하면 된다.(플랫폼에 대한 이해를 하고 진행해야하는 것...!)
시간은 첫번째가 2배 빨랐고, 메모리는 첫번째가 1.5배 더 사용했다.
n = int(input()) res = [] for i in range(n): res.append(list(input().split(" "))) for sentence in res: for idx,word in enumerate(sentence): sentence[idx] = word[::-1]+" " for sentence in res: print(''.join(sentence))
n = int(input()) for _ in range(n): strs = list(input().split(" ")) for idx,word in enumerate(strs): strs[idx] = word[::-1]+" " print(''.join(strs))
'2020년 > 코테' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 가장 흔한 단어 (0) 2020.12.19 [파이썬 알고리즘 인터뷰] 로그파일 재정렬 (0) 2020.12.19 [파이썬 알고리즘 인터뷰] 유효한 팰린드롬 (0) 2020.12.13 [파이썬 알고리즘 인터뷰] 빅오, 자료형 (0) 2020.12.08 [파이썬 알고리즘 인터뷰] 파이썬 (0) 2020.12.08