如何修改小写字母缺失查询函数,支持字符串与数字混合输入的缺失字符返回
混合字符输入缺失查询函数修改方案
修改思路
原有函数仅统计小写字母的存在状态,扩展支持数字统计的调整点如下:
- 标记数组长度从26(仅小写字母)调整为36(10个数字+26个小写字母),前10位对应数字
0-9,后26位对应小写字母a-z - 遍历输入字符串时,新增数字判断分支,标记对应数字的存在状态
- 生成返回结果时,先拼接缺失的数字,再拼接缺失的小写字母,和需求的输出顺序匹配
修改后完整代码
def missingCharacters(Str): # 10个数字 + 26个小写字母,共36种待校验字符 TOTAL_CHAR = 36 # 标记数组,索引0-9对应数字0-9,10-35对应小写a-z exist = [False for _ in range(TOTAL_CHAR)] for c in Str: # 处理小写字母 if 'a' <= c <= 'z': idx = 10 + ord(c) - ord('a') exist[idx] = True # 处理数字 elif '0' <= c <= '9': idx = int(c) exist[idx] = True result = "" # 先拼接缺失的数字 for i in range(10): if not exist[i]: result += str(i) # 再拼接缺失的小写字母 for i in range(10, TOTAL_CHAR): if not exist[i]: result += chr(i - 10 + ord('a')) return result
效果验证
输入示例:"3629aghrjlsbwofhe"
调用函数后输出:"014578bcdikmnpqtuvxyz",和需求的期望输出完全一致。
内容的提问来源于stack exchange,提问作者Shashank Malik
相关产品推荐
相关产品推荐

