在python中找出合成字符串中特定索引处的字母的程序
假设,我们得到一个字符串“input_str”。现在,我们被要求从给定的字符串中确定每个可能的子字符串,然后按照词法顺序将所有子字符串一个接一个地连接成另一个字符串。我们还提供了一个整数值k。我们的任务是从连接的字符串中返回索引k处的字母。
因此,如果输入类似于input_str='pqrs',k=6,那么输出将是p
给定字符串中的子字符串按词法顺序是p,pq,pqr,pqrs,q,qr,qrs,r,rs,s。
如果我们连接字符串,它就会变成ppqpqrpqrsqqrqrsrrss。在位置6处,字母是“p”。(索引从0开始)。
示例
让我们看看以下实现以获得更好的理解-
def solve(input_str, k):
stk_list = [("",list(range(len(input_str))))]
while stk_list:
pre, temp = stk_list.pop()
if k < len(pre):
return pre[k]
k -= len(pre)
input_sorted = sorted([(input_str[i],i+1) for i in temp if i < len(input_str)], reverse=True)
i = 0
while i < len(input_sorted):
val = input_sorted[i][0]
temp1 = [input_sorted[i][1]]
j = i + 1
while j < len(input_sorted) and input_sorted[j][0]== val:
temp1.append(input_sorted[j][1])
j += 1
stk_list.append((pre+val, temp1))
i = j
return None
print(solve('pqrs', 6))输入
'pqrs', 6输出结果
p