题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
btb = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'] # 设置映射列表
res = '' # 用于保存结果的变量
for i in s: # 遍历排好序的字符列表
bin_v = bin(ten_v) # 转换成二进制
# new_rbin_v=format(ten_v,'b').rjust(4,'0')[::-1]
rbin_v = bin_v[bin_v.index('b') + 1:].rjust(4, '0') # 截取有效数字位,并做翻转(效率更高这种)
new_rbin_v = rbin_v[::-1] # reverse
num = format(int(new_rbin_v, 2),'X') # 抓换成16 大写进制
res += num # 拼接
print(res) # 输出结果
#华为笔试#
s = list("".join(input().split())) # 接受键盘输入,使用str.join 讲split后的列表合并成一个字符串,然后使用list转换成合并后的列表
s[::2]= sorted(s[::2]) # 使用sorted 按照字典序列对原始列表中的偶数下表元素排序,【偶数子列表:从0开始,每隔2个取到列表排序】
s[1::2]=sorted(s[1::2]) # 使用sorted 按照字典序列对原始列表中的奇数下表元素排序,【奇数子列表:从1开始,每隔2个取到列表排序】res = '' # 用于保存结果的变量
for i in s: # 遍历排好序的字符列表
if i.upper() in btb: # 对在btb列表中的元素需要做转换
ten_v = int(i, 16) # to 16 # 转换成16进制bin_v = bin(ten_v) # 转换成二进制
# new_rbin_v=format(ten_v,'b').rjust(4,'0')[::-1]
rbin_v = bin_v[bin_v.index('b') + 1:].rjust(4, '0') # 截取有效数字位,并做翻转(效率更高这种)
new_rbin_v = rbin_v[::-1] # reverse
num = format(int(new_rbin_v, 2),'X') # 抓换成16 大写进制
res += num # 拼接
else:
res+= i # 直接拼接print(res) # 输出结果
查看14道真题和解析