如何实现从字符串生成反向索引(Reverse Index)并输出指定格式结果?
解决方案:获取字符的正向与反向索引
嘿,我来帮你搞定这个问题!你已经搞定了正向索引的部分,差的就是反向索引的计算啦~其实根本不用反转字符串再嵌套循环,反向索引可以直接通过正向索引和字符串长度的关系推导出来,既简洁又不会出现重复输出的问题。
核心思路
对于一个长度为n的字符串:
- 正向索引从0开始递增(0,1,2,...,n-1)
- 反向索引从
-n开始递增到-1(-n, -(n-1), ..., -1)
你可以用这个简单公式计算反向索引:反向索引 = 正向索引 - 字符串长度
正确代码示例
tekst = input("daj tekst: ") for idx, znak in enumerate(tekst): reverse_idx = idx - len(tekst) print(f'"{znak}" {idx} {reverse_idx}')
测试结果
当输入rafal时,输出会完全匹配你的需求:
"r" 0 -5
"a" 1 -4
"f" 2 -3
"a" 3 -2
"l" 4 -1
为什么之前的嵌套循环会出错?
你之前的嵌套循环会遍历原字符串的每个字符,同时又再遍历一次原字符串的所有索引,导致每个正向索引都和所有字符索引强制配对,自然会产生大量重复的无效输出。而实际上反向索引和正向索引是一一对应的,完全不需要额外遍历反转后的字符串哦。
内容的提问来源于stack exchange,提问作者Kasia Jasielska
相关产品推荐
相关产品推荐

