【问题标题】:All possible substring in PythonPython中所有可能的子字符串
【发布时间】:2020-09-11 13:24:06
【问题描述】:

谁能帮我用python找到字符串中所有可能的子字符串?

例如:

string = 'abc'

输出

a, b, c, ab, bc, abc

P.s:我是初学者,如果解决方案易于理解,我将不胜感激。

【问题讨论】:

标签: python substring


【解决方案1】:

你可以这样做:

def subString(s):
    for i in range(len(s)):
        for j in range(i+1,len(s)+1):
            print(s[i:j])

subString("aashu") 一种 啊 aas 阿什 阿舒 一种 作为 灰 阿舒 s 嘘 舒 H 胡 你

【讨论】:

    【解决方案2】:

    另一种方法是使用combinations

    from itertools import combinations
    s = 'abc'
    [
        ''.join(x)
        for size in range(1, len(s) + 1)
        for x in  (combinations(s, size))
    ]
    

    出来

    ['a', 'b', 'c', 'ab', 'ac', 'bc', 'abc']
    

    【讨论】:

    • “ac”不应出现在列表中
    【解决方案3】:

    每个子字符串都包含一个唯一的开始索引和一个唯一的结束索引(大于开始索引)。您可以使用两个 for 循环来获取索引的所有唯一组合。

    def all_substrings(s):
        all_subs = []
        for end in range(1, len(s) + 1):
            for start in range(end):
                all_subs.append(s[start:end])
        return all_subs
    
    s = 'abc'
    print(all_substrings(s)) # prints ['a', 'ab', 'b', 'abc', 'bc', 'c']
    

    【讨论】:

      【解决方案4】:

      你可以这样做:

      for length in range(len(string)):
          for index in range(len(string) - length):
              print(string[index:index+length+1])
      

      输出:

      a
      b
      c
      ab
      bc
      abc
      

      【讨论】:

        猜你喜欢
        • 2020-12-16
        • 1970-01-01
        • 2021-08-25
        • 1970-01-01
        • 2015-05-06
        • 2018-07-21
        • 1970-01-01
        • 2019-03-11
        • 2019-07-18
        相关资源
        最近更新 更多