辞典价值

Lexicographical value

我有一个字符串。我需要替换字符“?”并找到缺失的字符,使其成为字典序字符串。例如-如果我有字符串“ab”。它的字典序值为“aa”。因为第一个字符 'a' 不同于第二个字符 'b'。它给出输出-1。如果我给字符串“ta?a”。在这个字符串中如果我替换 '?'与 t。它成为词典编纂的。它给出输出“tata”。我正在输入 s 和 k。 K 是 s 长度的一半。请帮我写这段代码。

s=input()
k=input()
for i in range(k):
    if (s[i]>=97) and (s[i]<=123):
        if (s[i]==s[i+k]):
            continue
        else:
             s=-1
    
    else:   
        if(s[i]>=s[i+k]):
            s[i+k]=s[i]
        else:
            s[i]=s[i+k]

return s

我不完全确定我理解你的问题,但这是我的尝试:

s = list(input())
k = int(input())
for i in range(k):
    s[i] = s[i+k] if s[i] == '?' else s[i]
    s[i+k] = s[i] if s[i+k] == '?' else s[i+k]

print(''.join(s) if s[:k] == s[k:] else -1)

对于输入 ta?a2 它将输出 tata,对于 ab1 它将输出 -1。请注意,第二个参数无论如何都是多余的,因为你说它只是长度的一半。