📅  最后修改于: 2023-12-03 14:53:59.617000             🧑  作者: Mango
巴克莱(Barclays)是一家全球性金融服务公司,总部位于伦敦。作为英国最大的投资银行之一,其业务涵盖投资银行、财富管理、商业银行、消费金融和卡片业务等领域。BA3实习项目是巴克莱面向全球大学生开放的一项实习项目,适合对金融行业感兴趣且有编程能力的学生参加。
以下是巴克莱BA3实习面试中可能出现的面试题目:
实现一个函数,要求输入一个字符串,输出其最后一个单词的长度。
示例:
输入: "Hello World"
输出: 5
def lengthOfLastWord(s: str) -> int:
l = 0
r = len(s) - 1
while r >= 0 and s[r] == ' ':
r -= 1 # 去掉末尾的空格
while r >= 0 and s[r] != ' ':
r -= 1 # 搜索最后一个单词
l += 1
return l
假设你有一个数组,其中第 i 个元素是股票在第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(例如,多次购买股票然后再次出售),但是你必须在再次购买前出售掉之前的股票。
示例 1:
输入: [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 然后再在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出。
示例 2:
输入: [1,2,3,4,5]
输出: 4
解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 利润最大化。注意区分买入价格和卖出价格之间的差异。
def maxProfit(prices: List[int]) -> int:
if not prices:
return 0
n = len(prices)
dp = [[0, -prices[0]] for _ in range(n)]
for i in range(1, n):
dp[i][0] = max(dp[i-1][0], dp[i-1][1]+prices[i])
dp[i][1] = max(dp[i-1][1], dp[i-1][0]-prices[i])
return dp[n-1][0]
巴克莱BA3实习面试对编程能力和算法能力有较高要求,需要面试者全面掌握Python语言、算法数据结构等基础知识,同时还要有较强的分析和解决问题的能力。在面试前需要认真准备,熟练掌握面试可能涉及的相关知识和题型,加强练习,提高自己的实力水平。