Python3----牛客网基础机试题

1、字符串最后一个单词的长度

描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

输入描述:

输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述:

输出一个整数,表示输入字符串最后一个单词的长度。

答案

input_str= input().split(' ')
print(len(input_str[-1]))

 2、计算某字符出现次数

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

数据范围: 1≤n≤1000 

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

答案

imput_str=input().upper()
imput_word=input().upper()
print(imput_str.count(imput_word))

### 华为 OD Python 编程题练习与编码能力提升建议 华为 OD 试中,Python 是一个常用且较为易上手的编程语言。为了有效应对考试,应系统性地进行编程训练,涵盖常见算法、数据结构及典型问题类型。 #### 常见题型分类与练习资源 1. **字符串处理** - 示例题目:判断回文串、最长公共前缀、括号匹配等。 - 解法要点:利用双指针、栈、哈希表等结构进行高效操作。 - 示例代码(判断括号是否匹配): ```python def is_valid(s: str) -> bool: stack = [] mapping = {&#39;)&#39;: &#39;(&#39;, &#39;}&#39;: &#39;{&#39;, &#39;]&#39;: &#39;[&#39;} for char in s: if char in mapping.values(): stack.append(char) elif char in mapping: if not stack or mapping[char] != stack.pop(): return False return not stack ``` 2. **数组操作** - 示例题目:三数之和、滑动窗口最大值、原地移除元素等。 - 解法要点:双指针、前缀和、排序后使用二分查找等技巧。 - 示例代码(两数之和): ```python def two_sum(nums, target): hash_map = {} for i, num in enumerate(nums): complement = target - num if complement in hash_map: return [hash_map[complement], i] hash_map[num] = i return [] ``` 3. **树与图遍历** - 示例题目:层序遍历、路径和 II、二叉树的最大深度等。 - 解法要点:递归 DFS、迭代 BFS、构建树结构等方法。 - 示例代码(层序遍历二叉树): ```python from collections import deque def level_order(root): if not root: return [] result = [] queue = deque([root]) while queue: level_size = len(queue) level = [] for _ in range(level_size): node = queue.popleft() level.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) result.append(level) return result ``` 4. **动态规划与贪心算法** - 示例题目:最长上升子序列、背包问题、跳跃游戏等。 - 解法要点:状态转移方程设计、边界条件处理、空间优化。 - 示例代码(最长上升子序列): ```python def length_of_lis(nums): if not nums: return 0 dp = [1] * len(nums) for i in range(1, len(nums)): for j in range(i): if nums[i] > nums[j]: dp[i] = max(dp[i], dp[j] + 1) return max(dp) ``` 5. **排序与搜索** - 示例题目:快速排序实现、二分查找、旋转数组中的最小值等。 - 解法要点:理解排序时间复杂度、二分查找变种、边界控制。 - 示例代码(二分查找): ```python def binary_search(nums, target): left, right = 0, len(nums) - 1 while left <= right: mid = (left + right) // 2 if nums[mid] == target: return mid elif nums[mid] < target: left = mid + 1 else: right = mid - 1 return -1 ``` #### 推荐学习资源与刷题平台 - **LeetCode** 提供丰富的算法题库,并支持按标签筛选题目,适合专项训练,例如“BFS”、“DP”等高频考点[^2]。 - **牛客网** 汇集了历年各大公司真题,包含华为 OD 的部分试题目,适合实战模拟。 - **《剑指 Offer》** 是针对国内大厂面试的经典书籍,书中包含大量实际案例解析。 - **华为 OD 题库更新社区** 可以关注相关技术博客或论坛获取最新题库信息,有助于了解出题趋势[^1]。 - **ChatGPT 等辅助工具** 可用于理解算法思路,但需自行动手实现代码,避免依赖自动编码输出。 #### 调试与代码规范 在编写代码时,应注意以下几点以提高通过率: - 使用 `print()` 或调试器检查中间变量,确保逻辑正确。 - 注释清晰,命名规范,便于后期维护与他人阅读。 - 注意边界条件,如空输入、极端数值等情况。 - 控制时间复杂度,优先选择更优算法,如将 O(n²) 改进为 O(n log n)。 #### 实战建议与注意事项 - **冷冻期制**:若未通过考试,需等待 6 个月才能再次报考,因此应充分准备再参加正式考试[^2]。 - **语言选择**:Python 因其简洁语法和丰富内置函数,在快速解题方面具有优势,但需熟练掌握基础 API 使用[^2]。 - **异常处理**:在某些题目中,需考虑断网或死情况下的恢复制,例如保存中间状态以便重新连接继续执行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值