You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Rust中迭代str或String的前缀与后缀?

字符串前缀/后缀迭代实现方案

嘿,针对你要处理字符串 "abcd" 的这四个迭代需求,我整理了Python下的实现方案,每个都简单直接,看看对你有没有帮助:

1. 从最短到最长迭代其前缀:""、"a"、"ab"、"abc"、"abcd"

利用Python的切片语法,通过循环控制切片的结束位置,从0开始逐步扩展到字符串长度:

s = "abcd"
for i in range(len(s) + 1):
    print(s[:i])

解释s[:i] 会取字符串从开头到索引i(不包含)的子串。当i=0时得到空串,随着i递增,子串长度逐渐增加,直到i=4时取到完整的字符串。

2. 从最长到最短迭代其前缀:"abcd"、"abc"、"ab"、"a"、""

只需要把上面的循环顺序反过来,从字符串长度开始递减到0:

s = "abcd"
for i in range(len(s), -1, -1):
    print(s[:i])

解释range(len(s), -1, -1) 生成从4到0的整数序列,每次循环取的前缀长度逐步缩短,直到最后得到空串。

3. 从最短到最长迭代其后缀:""、"d"、"cd"、"bcd"、"abcd"

这次用切片的起始位置来控制,从字符串末尾开始往前移动:

s = "abcd"
for i in range(len(s), -1, -1):
    print(s[i:])

解释s[i:] 会取字符串从索引i到末尾的子串。当i=4时(等于字符串长度)得到空串,i递减时,子串的起始位置往前移,长度逐渐增加,直到i=0时取到完整字符串。

4. 从最长到最短迭代其后缀:"abcd"、"bcd"、"cd"、"d"、""

把第三个需求的循环顺序反过来,从0开始递增到字符串长度:

s = "abcd"
for i in range(len(s) + 1):
    print(s[i:])

解释i从0开始,每次取的后缀从完整字符串开始,随着i递增,后缀的起始位置后移,长度逐渐缩短,直到i=4时得到空串。

内容的提问来源于stack exchange,提问作者Andrey Bienkowski

火山引擎 最新活动