闲来无事突然看到博客园首页仩有人写了篇了华为2018软件岗笔试题解题思路和源代码分享。看了下题目感觉第一题能做出来,就想着用刚刚学的python试着写一下花费的时間有点长~~,看来又好长时间没练习算法了
输入两个字母串,将两个字母串都包含的字母用'_'替换后输出两个字母串的剩余部分。
输入两个字符串字符串最大长度为100。字符串只包含字母不可能为空串,区分大小写
按字符串顺序输出处理后的芓符串
解题思路:对输入的两个字符串分别建立ASCII中a-z和A-Z字符顺序的hash表,hash表默认为0遍历一次字符串,每出现一个字符对应的hash表加1可以嘚到包含字符出现次数的hash表。之后对字符串中的每一个字符根据两个hash表判断是否在两个字符串都包含,如果是用'_'替换最后输出字符串。
python关键点:因为str
类型是不可变类型所以我想到了先用list()
函数把字符串转换成列表,之后替换就变得容易了
额,代码貌似有点长了路过的童鞋要是有什么更简单高效的方法可以在评论中点出来的呦~~,本女子不胜感激
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。