该资料汇集了华为公司过往算法相关的笔试题目,涵盖数据结构、动态规划等多个方面,旨在帮助应聘者准备面试和测试。
华为笔试算法题汇总提供了两个与字符串操作相关的题目:一个是字符串过滤程序,另一个是字符串压缩程序。
**问题1:字符串过滤程序**
描述了从键盘输入的由小写字母组成的字符串中去除重复字符的功能实现。具体来说,如果一个字母在给定的串里首次出现之后再次出现,则这些后续的相同字母会被移除。
例如,“abacacde”经过处理后会变成“abcde”。
需要实现函数:`void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);`
其中,输入参数包括原始字符串、其长度和用于存储结果的空间。代码示例中给出了一种可能的解决方案。
**问题2:字符串压缩程序**
此题要求编写一个函数来实现对连续重复出现的小写字母进行压缩的功能,并按特定格式输出(即“字符数量+该字符”)的结果,如xxxyyyyyyz会被压缩为3x6y1z”。
需要实现的函数是`void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);`
华为提供的这些算法题能够帮助开发者提升编程技巧和解决复杂问题的能力。