Cisco OA 三题点击即送,所以不算难。许多候选人正在参加思科的SDE在线评估(OA)和面试,尤其是在9月。
根据我得到的反馈,有一点是明确的是思科的OA中基本都是新题,所以仅仅依赖刷题是不够的,你需要解决许多新的问题和新模式,这样你的大脑才能准备好应对新的题目!
今年大多数问题都涉及到树、贪心算法、排序集合应用、哈希、二分查找、双指针等相关内容。现在我们一起来看下最近的一场Cisco OA吧。
Cisco OA 1
问题:公司 IT 部门遇到了一个难题,用户持续使用简单的密码,如“password”,“abc123”等。你需要编写一个算法,找出将这些简单密码转换为更复杂版本所需的最小更改次数(插入和删除字符的次数)。
输入:
- 第一行输入一个字符串
currPassword,表示当前密码。 - 第二行输入一个字符串
newPassword,表示新密码。
输出:输出一个整数,表示将当前密码转换为新密码所需的最小更新次数(包括字符的插入和删除)。
解题思路
要计算将 currPassword 转换为 newPassword 的最少操作次数,可以拆解为以下步骤,首先找到 currPassword 和 newPassword 的最长公共子序列。
那很明显对于删除操作currPassword 的长度减去 LCS 的长度,即需要删除的字符数。对于插入操作newPassword 的长度减去 LCS 的长度,即需要插入的字符数。总操作次数=除操作次数 + 插入操作次数。
Cisco OA 2
问题:给定两个列表,每个列表表示一个非负整数。列表中的数字按照逆序排列。编写一个算法,计算这两个数字的和,并将结果以列表的形式输出。
输入:
- 第一行输入一个整数
list1_size,表示第一个列表的大小 (N)。 - 第二行包含
N个以空格分隔的整数,表示第一个列表中的元素。 - 第三行输入一个整数
list2_size,表示第二个列表的大小 (M)。 - 最后一行包含
M个以空格分隔的整数,表示第二个列表中的元素。
输出:输出 K 个以空格分隔的整数,表示两个数字的和,结果以逆序的方式呈现。
解题思路
首先将列表转换为数字,对于第一个列表,逆序后拼接成字符串,然后转换为整数。同理处理第二个列表。相加两个数字,将两个转换后的数字相加,得到结果。将结果转换为逆序列表,将相加后的结果转换为字符串,逆序后拆分为单个字符,再转换为整数列表。
Cisco OA 3
问题:编写一个算法,打印出整数列表中最大数字的出现次数。
输入:
- 第一行输入一个整数
list_size,表示列表中的元素数量 (N)。 - 第二行输入
N个以空格分隔的整数,表示列表中的元素。
输出:输出一个整数,表示列表中最大元素的出现次数。
约束条件:
解题思路:直接使用函数 max() 获取最大数,然后使用函数count() 统计最大数在列表中出现的次数。返回结果即可。
不刷题也能通过 Cisco OA ?
OA有困难吗?Programhelp 团队提供一站式面试辅助、代面服务,涵盖编程、系统设计、行为分析等问题类型,帮助精准提升您的面试表现。立即联系我们,让你离顶级科技公司 offer 更近一步