🧠
5 задач с собеседований Amazon для Python-разработчиковСоставили подборку из 5 задач с собеседований в Amazon, IBM и Apple для Python-разработчиков для джунов и миддлов.
Они относительно несложные и подойдут для junior и middle программистов, а встретить задачки можно в том числе на собеседованиях в Apple, Samsung, Oracle и IBM. 1. Изменить порядок слов
Вам дана строка 's' с некоторым количеством слов N. Нужно сделать так, чтобы исходный порядок слов в строке изменился на обратный.
При этом в исходной строке между словами может быть множество пробелов, но в результате работы скрипта мы должны получить предложение с одним пробелом между словами, без пробелов в начале предложения и после его конца.
Время выполнения скрипта не должно превышать 1 секунду.
Решение:Если строка равна нулю или пуста, в выводе должна появиться пустая строка. То же самое стоит сделать, если в исходной строке находится один пробел.
Инициализируйте
String ans для хранения перевернутой строки.
Инициализируйте указатель на конец исходной строки и запускайте цикл
while, пока указатель не достигнет начала строки.
Если в строке встречается несколько пробелов, уменьшите указатель.
Добавьте пробелы в строку
ans. После этого запустите вложенный цикл
while, чтобы извлечь текущее слово из
ans в вывод.
После прохождения всей строки верните ответ.
'''
Time Complexity = O(N)
Space Complexity = O(N)
Where N is the length of the string.
'''
def reverseString(str: str) -> str:
# if the string is " " then return "".
if(str == "" or str == " "):
return ""
ans = ''
start = len(str) - 1
while(start >= 0):
# Skip multiple spaces.
if(str[start] == ' '):
start-=1
else:
# Add space between words.
if(len(ans) > 0):
ans += (' ')
j = start
while(j >= 0 and str[j] != ' '):
j-=1
# add current word to ans.
ans += (str[j+1: j+1+start-j])
start = j
return ans
2. Сумма всех чисел до NВам дано число N. Напишите скрипт, который считал бы сумму всех четных чисел в промежутке от 1 до N, включая N. К примеру, если N равняется 6, то вывод должен быть равен 2+4+6, то есть 12.
Решение:Нам нужно вывести формулу для вычисления суммы четных чисел до числа
'N'.
Пусть задано число
N. Тогда общее количество четных чисел от
1 до
N будет равно
N/2. Например, для
4 список четных чисел будет равен
2 и
4, а их количество равно
2.
Последовательность четных чисел до
N образует арифметическую прогрессию с общей разницей
D между числами в
2, первым элементом
A = 2, и количеством элементов
N, равным
N/2, как доказано выше.
Сумма арифметической прогрессии равна
(N/2)*(A+L), где
N — количество элементов, а
L — последнее число, которое также можно записать как
A + (N - 1)D.
Таким образом, сумма равна
(N/2*2) * (2 + 2 + (N/2 - 1)*2) = (N/2) * (1 + 1 + N/2 - 1) = (N/2) * (N/2 + 1).'''
Time Complexity : O(1)
Space Complexity : O(1)
'''
def evenSumTillN(n):
# Calculate the sum.
sum = (n // 2) * (n // 2 + 1)
return sum📌
Остальные@python_job_interview