python 实现 split 函数--双指针遍历

突然想用 python 实现一下 split 方法,写了半天发现还不太好写,就记录下来。

思路就是利用双指针来遍历字符串,先用一个指针 p 遍历整个字符串,发现目标字符串后就用另一个指针 r 开始遍历,直到下一个目标字符串出现为止,把 p 和 r 之间的字符串加入列表,循环以上流程即可。

Talk is cheap, show the fucking code.

from typing import List


def _split(s: str, sep: str = None) -> List[str]:
    res = []
    n = len(s)
    p = 0
    sep = sep or ' '
    while p < n and s[p] == sep:
        p += 1
    if p == n: return res
    while p < n:
        r = p
        while r < n and s[r] != sep:
            r += 1
        if r > p:
            res.append(s[p:r])
        p = r + 1
    return res
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容