在一行上输入两个长度
,由大小写字母和数字构成的字符串
和
,代表待处理的字符串。
输出处理后的最终字符串。
dec fab
5D37BF
在这个样例中,全过程描述如下:
【合并阶段】
第一步合并得到
;
第二步排序得到
。
【调整阶段】
对于第一个字符
,其十进制数为
,二进制数为
,翻转后得到
,再转换回十六进制数为
;
第二个字符
,翻转
;
第三个字符
,翻转
;
第四个字符
,翻转
;
第五个字符
,翻转
;
第六个字符
,翻转
。
abV CDw
B3VD5w
在这个样例中,全过程描述如下:
【合并阶段】
第一步合并得到
;
第二步排序得到
。
【调整阶段】
对于第一个字符
,其十进制数为
,二进制数为
,翻转后得到
;
第二个字符
,翻转
;
第三个字符
,跳过该字符;
第四个字符
,翻转
;
第五个字符
,翻转
;
第六个字符
,跳过该字符。
123 15
88C4A
在这个样例中,全过程描述如下:
【合并阶段】
第一步合并得到
;
第二步排序得到
。
【调整阶段】
对于第一、二个字符
,其十进制数为
,二进制数为
,翻转后得到
,再转换回十六进制数为
;
第三个字符
,翻转
;
第四个字符
,翻转
;
第五个字符
,翻转
。
本题已于下方时间节点更新,请注意题解时效性:
1. 2025-05-15 更新题面。
2. 2024-12-14 更新题面。
l = input().replace(" ","")
odds = []
evens = []
for i in range(len(l)):
if i % 2 == 0: # 下标1开始
odds.append(l[i])
else:
evens.append(l[i])
odds_ = sorted(odds)
evens_ = sorted(evens)
u_ = ""
max_len = max(len(odds), len(evens))
for i in range(max_len):
if i < len(odds):
u_ += odds_[i]
if i < len(evens):
u_ += evens_[i]
result = []
HEX_CHAR = "0123456789abcdefABCDEF"
for ch in u_:
if ch not in HEX_CHAR:
result.append(ch)
else:
binary = ""
binary = bin(int(ch, 16))[2:].zfill(4)
reversed_binary = binary[::-1]
hex_ = hex(int(reversed_binary, 2))[2:].upper()
result.append(hex_)
print("".join(result)) s,t = input().strip().split(" ")
u = list(s + t)
lu1 = []
lu2 = []
a = ""
for i,j in enumerate(u):
if i % 2 != 0:
lu1.append(j)
else:
lu2.append(j)
ls = sorted(lu1)
lt = sorted(lu2)
lb = []
if len(ls) == len(lt):
for x in range(0,len(u)//2):
a += lt[x] + ls[x]
if len(ls) > len(lt):
for x in range(0,len(u)//2):
a += lt[x] + ls[x]
a += ls[-1]
if len(ls) < len(lt):
for x in range(0,len(u)//2):
a += lt[x] + ls[x]
a += lt[-1]
for b in a:
if 48<=ord(b)<=57&nbs***bsp;97<=ord(b)<=102&nbs***bsp;65<=ord(b)<=70:
b = int(b,16)
b = format(b,"04b")
b = str(b)[::-1]
b = hex(int(b,2))[2:].upper()
lb.append(b)
else:
lb.append(b)
print("".join(map(str,lb)))
s, t = input().split(" ")
u = s + t
# print(u)
u1 = [u[_] for _ in range(1, len(u), 2)]
u2 = [u[_] for _ in range(0, len(u), 2)]
u1.sort()
u2.sort()
# print(u1)
# print(u2)
v = str()
if len(u1) < len(u2):
for i in range(0, len(u1)):
v += u2[i] + u1[i]
v += u2[-1]
if len(u1) > len(u2):
for i in range(0, len(u2)):
v += u2[i] + u1[i]
v += u1[-1]
if len(u1) == len(u2):
for i in range(0, len(u2)):
v += u2[i] + u1[i]
# print(v)
# print(ord("0")) # 48
# print(ord("9")) # 57
# print(ord("a")) # 97
# print(ord("f")) # 102
# print(ord("A")) # 65
# print(ord("F")) # 70
A = []
for i in v:
c1 = ord(i) >= 48 and ord(i) <= 57
c2 = ord(i) >= 97 and ord(i) <= 102
c3 = ord(i) >= 65 and ord(i) <= 70
if c1&nbs***bsp;c2&nbs***bsp;c3:
if c1:
A.append(int(i))
if c2:
t = "1" + chr(ord(i) - 49)
A.append(int(t))
if c3:
t = "1" + chr(ord(i) - 17)
A.append(int(t))
else:
A.append(i)
# print(A)
B = []
def ten_to_two(n, save):
if n == 0:
# print(save)
R = [0, 0, 0, 0]
for i in save:
R[i] = 1
# print(R)
s1 = str()
# for i in range(len(R) - 1, -1, -1):
# s1 += str(R[i])
for i in range(0, len(R)):
s1 += str(R[i])
# print(s1)
B.append(s1)
if n > 0:
x = 0
while 2 ** x <= n:
x += 1
save.append(x - 1)
new_n = n - 2 ** (x - 1)
ten_to_two(new_n, save)
for i in range(0, len(A)):
if type(A[i]) == int:
if A[i] > 0:
ten_to_two(A[i], [])
A[i] = B[-1]
if A[i] == 0:
A[i] = "0000"
# print(A)
def two_to_ten(s1):
a = 0
for i in range(0, len(s1)):
a = a + int(s1[i]) * 2 ** (len(s1) - 1 - i)
a = str(a)
if a == "10":
a = "A"
if a == "11":
a = "B"
if a == "12":
a = "C"
if a == "13":
a = "D"
if a == "14":
a = "E"
if a == "15":
a = "F"
# print(a)
return a
x = str()
for i in A:
if i[0] == "0"&nbs***bsp;i[0] == "1":
x += two_to_ten(i)
else:
x += i
print(x) s = input()
s = s.replace(" ", "")
# combine and sort two string
l1 = [s[i] for i in range(len(s)) if i%2==0]
l2 = [s[i] for i in range(len(s)) if i%2==1]
l1.sort()
l2.sort()
def encrypt(c):
# convert to binary
c = bin(int(c, 16))[2:].rjust(4, "0")[::-1]
# convert binary to hex
c = hex(int(c, 2))[2:].upper()
return c
# construct a hashmap
hmap = {str(k):encrypt(str(k)) for k in range(10)}
for i in "ABCDEFabcdef":
hmap[i] = encrypt(i)
# convert character in string if necessary
for i in range(len(l1)):
if l1[i] in hmap:
l1[i] = hmap[l1[i]]
for i in range(len(l2)):
if l2[i] in hmap:
l2[i] = hmap[l2[i]]
res = ''
# generate result
for i in range(len(s)):
if i%2 == 0:
res += l1.pop(0)
else:
res += l2.pop(0)
print(res)
s=list("".join(input().split()))
s[0::2]=sorted(s[0::2])
s[1::2]=sorted(s[1::2])
for i in s:
try:
i=int(i,16)
i=bin(i)[2:].rjust(4,"0")[::-1]
i=int(i,2)
i=hex(i)[2:]
if i.islower():
i=i.upper()
print(i,end="")
except:
print(i,end="") def reserve(str: str):
return str[-1::-1]
def str2Hex2Bin2SortedHexStr(s: str):
decimalism = int(s, 16)
binary = bin(decimalism)[2:]
if len(binary) < 4:
binary = (4 - len(binary)) * "0" + binary
binary = reserve(binary)
hexStr = hex(int(binary, 2))[2:]
if hexStr.isalpha():
return hexStr.upper()
else:
return hexStr
def step1(str1: str, str2: str):
return str1 + str2
def step2(mergeStr: str):
strLength = len(mergeStr)
evenIndexStr = []
oddIndexStr = []
for i in range(strLength):
if i%2 != 0: # odd digit index
oddIndexStr.append(mergeStr[i])
else: # even digit index
evenIndexStr.append(mergeStr[i])
evenIndexStr = sorted(evenIndexStr)
oddIndexStr = sorted(oddIndexStr)
res = ""
for i in range(len(evenIndexStr)):
res += evenIndexStr[i]
try:
res += oddIndexStr[i]
except Exception as e:
# print(e)
pass
return res
def step3(sortedStr: str):
str1 = "ABCDEF"
str2 = "abcdef"
res = ""
strList = list(sortedStr)
for i in range(len(strList)):
if (strList[i] in str1)&nbs***bsp;(strList[i] in str2)&nbs***bsp;(strList[i].isdigit()):
if strList[i].isalpha():
strList[i] = strList[i].lower()
res += str2Hex2Bin2SortedHexStr(strList[i])
else:
res += strList[i]
return res
str1, str2 = map(str, input().strip().split(" "))
print(step3(step2(step1(str1, str2))))
#冲冲冲
s0, s1 = input().split() # 转换一 s = s0 + s1 # 转换二 ji, ou = [], [] for i in range(len(s)): if i % 2 == 0: ou.append(s[i]) else: ji.append(s[i]) ji.sort() ou.sort() tmp = 0 s = '' while ji and ou: if tmp == 0: s += ou[0] ou = ou[1:] tmp = 1 elif tmp == 1: s += ji[0] ji = ji[1:] tmp = 0 if ji: s += ji[0] else: s += ou[0] # 转换三 res = '' for c in s: if '0' <= c <= '9'&nbs***bsp;'A' <= c <= 'F'&nbs***bsp;'a' <= c <= 'f': F2A = int(c, 16) A2B = format(F2A, '04b') tA2B = A2B[::-1] tB2A = int(tA2B, 2) tA2F = hex(tB2A)[2:] res += tA2F.upper() else: res += c print(res)
from itertools import zip_longest
def encod(char: str):
if char.isdigit()&nbs***bsp;ord('A') <= ord(char) <= ord('F')&nbs***bsp;ord('a') <= ord(char) <= ord('f'):
return hex(int(bin(int(char,base=16))[2:][::-1].ljust(4,'0'),base=2))[-1].upper()
return char
def process(s1, s2):
s = s1 + s2
s_even = sorted(s[::2])
s_odd = sorted(s[1::2])
s_new = ''.join(map(lambda x: ''.join([x[0],x[1]]),zip_longest(s_even,s_odd,fillvalue='')))
return ''.join(map(encod,s_new))
s = input().split(' ')
print(process(s[0],s[1])) # 初学者按照题意一步一步做的,可能没有答案写的好,请参考。
a=''.join(input().split())
l1,l2=[],[]
for i in range(0,len(a),2):
l1.append(a[i])
l1=sorted(l1)
for i in range(1,len(a),2):
l2.append(a[i])
l1=sorted(l1)
l2=sorted(l2)
index1,index2=0,0
s=''
for i in range(len(a)):
if (i+2)%2==0:
s+=l1[index1]
index1+=1
else:
s+=l2[index2]
index2+=1
m,q='',''
for one in s:
if one.isalpha():
if 'A'<=one<='F'or'a'<=one<='f':
m+=hex(int(('0b'+bin(int(one,16)).replace('0b','')[::-1]),2)).replace('0x','').upper()
else:
m+=one
elif one.isdigit():
q=bin(int(one)).replace('0b','')
q=int(((4-len(q))*'0'+q)[::-1],2)
if q>=10:
m+=hex(q).replace('0x','').upper()
else:
m+=str(q)
print(m)
'''下面是调试用的代码'''
# m='f'
# print(m,type(m))
# q=hex(int(('0b'+bin(int(m,16)).replace('0b','')[::-1]),2)).replace('0x','')
# # q=bin(int(m,16))
# print(q,type(q))
# m='5'
# q=bin(int(m)).replace('0b','')
# q=int(((4-len(q))*'0'+q)[::-1],2)
# if q>=10:
# q=hex(q).replace('0x','').upper()
# else:
# q=str(q)
# print(q,type(q))