📅  最后修改于: 2023-12-03 14:44:36.518000             🧑  作者: Mango
本文介绍了 NielsenIQ 公司在 2021 年校园招聘中对软件工程师的面试经验。这些面试问题涵盖了编程基础、数据结构、算法和设计模式等方面,对于准备参加 NielsenIQ 软件工程师职位面试的程序员有一定的参考价值。
def add(x, y):
return x + y
def is_even(n):
return n % 2 == 0
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def is_empty(self):
return len(self.items) == 0
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
return self.items.pop(0)
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def bubble_sort(lst):
n = len(lst)
for i in range(n - 1):
for j in range(n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
return lst
def binary_search(lst, x):
left, right = 0, len(lst) - 1
while left <= right:
mid = (left + right) // 2
if lst[mid] == x:
return mid
elif lst[mid] < x:
left = mid + 1
else:
right = mid - 1
return -1
工厂模式的原理是将对象的创建和使用分离开来。工厂类负责创建对象,客户端只需要使用工厂类提供的接口就可以得到一个对象。
工厂模式的作用是使代码更加灵活和可扩展。通过引入工厂类,可以根据需要随时更改对象的实现方式,而不需要修改客户端代码。
单例模式的原理是确保一个类只有一个实例,并提供一个全局访问点让客户端可以访问这个实例。
单例模式的作用是保证系统中某个类只有一个实例,从而减少了系统开销,同时提供一个全局访问点,简化了代码的调用和管理。