华为笔试题:字符串字母转换与查找整数相同部分
5星 · 超过95%的资源 需积分: 46 165 浏览量
更新于2024-07-25
收藏 209KB DOC 举报
"这份资料包含了两道华为上机笔试题,分别是字符串字母转换和检查整数中是否有相同部分。题目提供了示例代码,但没有完整的答案。"
在华为的上机笔试中,第一道题目要求编写一个`Stringchang`函数,功能是将输入字符串中的每个字母转换为其后的字母,遵循字母表的循环规则,即`z`和`Z`分别变为`a`和`A`。给出的代码示例中,函数接受两个参数:一个输入字符串`input`和一个输出字符串`output`。代码使用了`assert`来确保输入字符串不为空,然后遍历输入字符串的每个字符,根据字母表规则进行转换,并将结果存储到输出字符串中。然而,代码中并未处理空指针的情况,这是需要注意的一点。
在实际编程中,处理空指针通常很重要,因为未初始化或无效的指针可能导致程序崩溃。可以考虑在函数开始时增加一个条件判断,如果输入指针为空,则直接返回错误信息或抛出异常。例如:
```c
if (input == NULL || output == NULL) {
printf("ERROR: 输入或输出指针为空");
return;
}
```
第二道题目是`intsame`函数,用于检查一个整数`num`中是否存在长度至少为2的重复子序列。首先,将整数转换为字符数组`a`,然后进行逆序操作,以便进行后续的比较。这里给出的代码只完成了数组的反转,并未完成实际的检查逻辑。要实现这个功能,可以在数组反转后,使用双指针法,一个指针从数组前端开始,另一个指针从数组后端开始,依次比较两者指向的数字是否相等,若相等则继续向前搜索,直到找到不匹配的数字或达到指定长度,然后移动指针并继续比较。若在整个过程中都找到了匹配的连续数字,那么返回1,否则返回0。
```c
// 完整的intsame函数实现
int same(int num) {
char a[11];
int i = 0, m = 0, j = 0;
// 转换整数为字符数组
while (num) {
a[i] = num % 10 + '0';
num = num / 10;
i++;
}
// 反转数组
for (j = 0; j < i / 2; j++) {
char temp = a[j];
a[j] = a[i - j - 1];
a[i - j - 1] = temp;
}
// 检查是否存在相同子序列
for (i = 0; i <= i - 2; i++) {
for (j = i + 1; j <= i + 1 && j < i + 2; j++) {
if (a[i] != a[j]) {
break;
}
}
if (j == i + 2) {
m = 1;
break;
}
}
return m;
}
```
这两道题目考察了基本的字符串操作、字符与数字的转换以及数组处理能力,都是在编程面试中常见的基础题目。对于想要进入华为工作的求职者来说,熟练掌握这些基础知识是必要的。
2010-08-06 上传
2022-07-13 上传
2019-08-29 上传
2009-03-30 上传
2009-03-14 上传
2010-04-01 上传
2011-08-12 上传
2022-05-15 上传
wangyingseu
- 粉丝: 0
- 资源: 9
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析