华为2019校招笔试:Python字符串处理与非法字符检测

12 下载量 201 浏览量 更新于2023-03-16 收藏 60KB PDF 举报
华为2019年的校招笔试题涉及了Python编程语言中的字符串处理,题目设计旨在考察应聘者对基础数据结构、字符串操作、条件判断以及算法应用的理解。以下是详细的解答内容: 题目介绍部分强调了试题的实战性,要求考生处理两种类型的字符串:合法字符串和非法字符串。合法字符串仅包含大小写字母(a-z, A-Z)和数字(0-9),其余字符被视为非法。输入字符串需要满足特定格式,包括单行输入,空字符串作为定界符,且字符串首字符不能为空。 1. 检查和去重: 题目首先要求检查输入的字符串是否存在非法字符,如果存在则将其视为非法输入。去重意味着输出的合法字符串不能包含重复字符。这需要使用Python的集合(set)数据结构,集合会自动去除重复元素。 2. 循环左移和排序: 对于合法字符串,需要进行循环左移10次,这可以通过切片操作实现。例如,字符串"abc"左移一次是"bca"。然后,对处理后的字符串进行排序,按照ASCII值从小到大排序。Python提供了内置的sorted()函数或列表.sort()方法来进行排序。 3. 输出格式: 输出时,需要保持一定的格式规范,即在字符串之间添加一个空格作为定界符。同时,合法字符串的输出需要去重,并且在循环左移和排序后再次呈现。非法字符串则单独输出。 4. 示例解析: 提供了一个示例,展示了输入和预期输出。例如,输入的字符串中包含了多个合法和非法的字符串。合法字符串"abc", "def"经过去重、左移和排序后变为"abcdef", "abcd123",这些结果之间用空格隔开。非法字符串如"aga'-="和"87&&^"被排除在外。 总结起来,这个华为2019校招笔试题涉及了字符串的清洗、操作和格式化,考察了应聘者的编程基础、逻辑思维和代码优化能力。解题的关键在于正确运用Python的字符串处理函数和数据结构,同时理解题目中关于空格、非法字符处理的要求。对于求职者来说,这类题目不仅能检验技术实力,也能提升实际问题解决的能力。