在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开始)。
为了解决此问题,我们将遵循以下步骤−
- stk_list:包含一个空字符串和input_str中所有字母的列表的元组的新列表
- while stk_list非空, 执行以下操作
- pre:从stk_list中删除最后一个元素
- temp:从stk_list中删除最后一个元素
- 如果k < pre的长度,则
- 返回pre [k]。
- k : k – pre的长度
- input_sorted:包含input_str中的字母及其在input_str中的位置的元组的新列表
- 按元组的第二个值的降序对列表input_sorted进行排序
- i= 0
- while i < input_sorted的长度, 执行以下操作
- val:input_sorted[i, 0]
- temp1:[input_sorted[i,1]]
- j:i + 1
- while j < input_sorted的长度,且input_sorted[j,0]等于val时,执行以下操作
- 在temp1的末尾插入input_sorted[j,1]
- j :j + 1
- 将(pre+val,temp1)插入stk_list的末尾
- i := j
- 返回null
示例
让我们看一下以下实现,以更好地理解-