`**》问题:给定一个字符串创建2个并行数组,从左到右处理字符串中的字母,将每个字母按字母顺序插入到第一个数组中,一次插入一个字母。在此过程中,每个字母在第二个数组中赋一个整数值如下:
第一个字母的值为 0.
如果新字母是数组中的第一个或最后一个,则其值比相邻字母的值多一个。
否则比相邻两个值中较大的值加一。如果字母已经在数组中,则新字母放在现有字母之前。
创建两个数组后,按值的顺序输出字母,从左到右,从 0 开始,然后是所有 1,然后是所有 2,依此类推
下面是如何为字符串 PYTHONN 构建数组:
字母P说明规则1; Y 和 H 说明规则 2; T、O 和 N 说明规则 3;最后的 N 说明了如果有重复的字母会发生什么。
此示例的输出是 PHYOTNN。”
‘我尝试转换最后一个阵型’ *
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
user_input = input()
output = result(user_input)
fptr.write(output + '\n')
fptr.close()
'到'
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
input = input()
result = listByValue(input)
fptr.write(result + '\n')
fptr.close()
'但我无法获取 isea,而且我一直收到错误消息。请帮助我。'
'这是我的代码:'
def ltnb(i):
return i.split()
def listByValue(input):
process_str=input
converted_list=[]
test_v=[]
arr_1=[]
arr_2=[]
full_list=[]
x=0
for letter in process_str:
test_v.clear()
for i in converted_list:
test_v.append(ltnb(i)[0])
test_v.append(letter)
test_v.sort()
if len(converted_list)==0:
number=0
elif x==0:
x=test_v.index(letter)
number=int(ltnb(converted_list[x-1])[1])+1
elif x==len(converted_list):
x=test_v.index(letter)
number=int(ltnb(converted_list[x])[1])+1
else:
x=test_v.index(letter)
number=max(int(ltnb(converted_list[x-1])[1]), int(ltnb(converted_list[x])[1]))
converted_list.insert(x, f"{letter} {number}")
for i in range(0,len(converted_list)):
ltnb(converted_list)[1]
def result(s):
L, V = [], [-1]
for c in s:
L.append(c)
L.sort()
i = L.index(c)
V.insert(i+1, max(V[i:i+2])+1)
return ''.join(sorted(L, key=lambda _: V.pop(1)))
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
user_input = input()
output = result(user_input)
fptr.write(output + '\n')
fptr.close() *
“我期待正确的代码。”**`