最近有同学参加Uber Online Assessment,遇到了两道非常有代表性的题目。csvosupport 将题目和解题思路整理出来,帮助大家更好地准备 Uber OA
📝 Problem 1: Valid String Check(有效字符串检查)
题目描述
给定一个字符串,检查它是否有效。一个有效的字符串必须满足以下条件:
- 字符串只包含数字
- 字符串必须包含至少一
7 - 字符串的长度必须3 的倍数
测试用例
有效字符串:
"771""777""123777"
无效字符串:
"12345"(长度不是 3 的倍数)"71"(长度不是 3 的倍数)"171"(包含 7,长度是 3)"70"(长度不是 3 的倍数)
解题思路(csvosupport 指导
这道题考察基本的字符串验证逻辑
def is_valid_string(s):
# 检查长度是否是 3 的倍数
if len(s) % 3 != 0:
return False
# 检查是否只包含数字
if not s.isdigit():
return False
# 检查是否包含至少一7
if '7' not in s:
return False
return True
# 测试
print(is_valid_string("771")) # True
print(is_valid_string("777")) # True
print(is_valid_string("123777")) # True
print(is_valid_string("12345")) # False
print(is_valid_string("71")) # False
时间复杂度: O(n),n 为字符串长度 空间复杂度: O(1)
📝 Problem 2: Command Frequency Counter(命令频率计数器
题目描述
给定一个命令数组,只有三种可能的命令:cmd1、cmd2 cmd3
你的任务是:
- 统计每个命令出现的次
- 按照出现频率降序排列
- 如果频率相同,按照命令名称的字典序排
示例
*输入
commands = ["cmd1", "cmd2", "cmd1", "cmd3", "cmd2", "cmd1"]
*输出
[("cmd1", 3), ("cmd2", 2), ("cmd3", 1)]
解题思路(csvosupport 指导
这道题考察哈希表统计和自定义排序:
from collections import Counter
def count_commands(commands):
# 统计每个命令的频
freq = Counter(commands)
# 按频率降序,频率相同则按命令名称字典序排
result = sorted(freq.items(), key=lambda x: (-x[1], x[0]))
return result
# 测试
commands = ["cmd1", "cmd2", "cmd1", "cmd3", "cmd2", "cmd1"]
print(count_commands(commands))
# 输出: [('cmd1', 3), ('cmd2', 2), ('cmd3', 1)]
时间复杂度: O(n + k log k)
- n 为命令数组长度(统计频率
- k 为不同命令的数量(排序,这里 k=3
空间复杂度: O(k),k 为不同命令的数量
优化版本(csvosupport 高级指导
如果命令种类固定3 种,可以进一步优化:
def count_commands_optimized(commands):
# 手动统计(避免使Counter
freq = {"cmd1": 0, "cmd2": 0, "cmd3": 0}
for cmd in commands:
freq[cmd] += 1
# 转换为列表并排序
result = sorted(freq.items(), key=lambda x: (-x[1], x[0]))
return result
🎯 Uber OA 备考建议(csvosupport 经验分享
1. 时间管理
- Uber OA 通常2-3 道题,时70-90 分钟
- 建议先快速浏览所有题目,从简单的开
2. 代码质量
- 注意边界条件处理
- 变量命名要清
- 添加必要的注
3. 测试用例
- 自己构造更多测试用
- 考虑边界情况(空字符串、单个元素等
4. 常见考点
- 字符串处
- 数组/哈希表操
- 排序和搜
- 基础数据结构(栈、队列)
💡 csvosupport 如何帮助你?
Uber OA 中,csvosupport 提供
实时代码辅助 - 确保代码逻辑正确 测试用例生成 - 帮你发现潜在bug 时间管理建议 - 合理分配答题时间 边界条件提醒 - 避免遗漏特殊情况 代码优化建议 - 提升代码质量
想在 Uber、Lyft、DoorDash 等公司的 OA 中取得高分?
联系 csvosupport,我们提供专业的 OA 辅助服务,助你顺利通过筛选!
*标签 #Uber #OA #OnlineAssessment #字符串处#哈希#OA代做 #面试辅助 #算法#一亩三分地
需要面试真题? 立刻联系微信 Coding0201,获得真题。