var t,i:longint;
procedure giai;
var i,n:longint;
s:string;
begin
readln(s);n:=length(s);
for i:=1 to (n+1) div 2 do
begin
if (s[i]='?') and (s[n+1-i]<>'?') then s[i]:=s[n-i+1];
if (s[i]<>'?') and (s[n+1-i]='?') then s[n-i+1]:=s[i];
if (s[i]='?') and (s[n-i+1]='?') then
begin
s[i]:='A';
s[n-i+1]:='A';
end;
if (s[i]<>'?') and (s[n+1-i]<>'?') and (s[i]<>s[n+1-i]) then
begin
write(-1);exit;
end;
end;
writeln(s);
end;
begin
assign(input, 'xaudx583.inp');reset(input);
assign(output,'xaudx583.out');rewrite(output);
readln(t);
for i:=1 to t do
giai;
end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Sáu, 13 tháng 1, 2023
xaudx583 pascal
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.