728x90
Array Interview
Questions
1. Reverse an Array
List 를 O(N) 시간 복잡도로 추가 메모리를 사용하지 않고 reverse 하세요.
예) input: nums = [1,3,5,7,9] output: nums = [9,7,5,3,1]
2. Palindrome
Palindrome(회문) 은 거꾸로 읽어도 바로 읽는 것과 같은 단어나 문장의 배열을 말합니다.
예) [1,2,3,4,3,2,1], level, 스위스
주어지는 어떤 string 이던 palindrome 인지 아닌지 확인하는 function 을 쓰세요.
3. Integer reversion
주어지는 integer(number)을 reverse 하세요.
4. Anagram
anagram 은 단어나 문장 내의 글자들을 재 배열하여 다른 단어나 문장이 되는 문자로 보면 된다.
예) lives, elvis / pear, reap / 탄성, 성탄 등..
주어지는 두 개의 string 이 anagram 인지 확인하는 function 을 쓰세요
Solution
1. Reverse an Array
def reverse(nums):
left_index = 0
right_index = len(nums) - 1
while left < right:
nums[left_index],nums[right_index] = nums[right_index],nums[left_index]
left_index += 1
right_index -= 1
* Array가 아닌 String의 경우
nums = "string"
nums = list(nums)
def reverse(nums):
li = 0
ri = len(nums) - 1
while li < ri:
nums[li], nums[ri] = nums[ri], nums[li]
li += 1
ri -= 1
nums = ''.join(nums)
2. Palindrome
def is_palindrome(s):
return s == s[::-1]
이 짧은 코드 뒤의 palindrome 인지 확인하는 코드는
nums = [1,2,3,2,1]
# nums = list(nums) "String 인 경우"
def reverse(nums):
li = 0
ri = len(nums) - 1
while li < ri:
nums[li], nums[ri] = nums[ri], nums[li]
li += 1
ri -= 1
# nums = ''.join(nums) "String 인 경우"
def is_palindrome(nums):
reverse(nums)
if nums == nums[::-1]:
print(True)
else:
print(False)
is_palindrome(nums)
3. integer 을 string, list 로 전환하지 않는 한 위에서 만든 reverse와 같은 function을 사용할 수 없다.
nums = 1234
def reversed_int(nums):
reversed_nums = 0
remainder = 0
while nums > 0:
remainder = nums % 10
reversed_nums = reversed_nums * 10 + remainder
nums = nums // 10
reversed_int(nums)
4. Anagram
def is_anagram(str1, str2):
if len(str1) != len(str2):
return False
str1 = sorted(str1)
str2 = sorted(str2)
for i in range(len(str1)):
if str1[i] != str2[i]:
return False
return True
str1 = "lives"
str2 = "elvis"
def is_anagram(str1, str2):
str1 = list(str1)
str2 = list(str2)
print(str1, str2)
str1.sort()
str2.sort()
if str1 == str2:
return True
return False
728x90
'DataStructure' 카테고리의 다른 글
two sum #1 알고리즘 문제 (1) | 2023.10.28 |
---|---|
Array 배열, List 리스트- Data Structure 1 (0) | 2023.07.13 |
Data Structure, 자료구조 데이터 구조는 왜 필요할까? (0) | 2023.05.13 |