📜  Python程序,用于获取K个切片的字符串的所有可能切片

📅  最后修改于: 2022-05-13 01:55:24.809000             🧑  作者: Mango

Python程序,用于获取K个切片的字符串的所有可能切片

给定一个字符串,任务是编写一个Python程序来获取 K 个切片的所有可能切片。

方法#1:使用列表理解+切片+循环

在这种情况下,连续切片从大小 1 开始递增计算。最后一个元素总是以 acc 中的所有方式拆分为 2。到其他字符串。

Python3
# Python3 code to demonstrate working of
# All possible slices for K length
# Using list comprehension + string slicing + loop
  
# initializing string
test_str = "Gfg4all"
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing number of slices
K = 3
  
res = [[test_str]]
for idx in range(K - 1):
  
    # slicing initial strings with difference sizes.
    res = [[*strt, end[:y], end[y:]] for *strt, end in res
           for y in range(1, len(end) - K + idx + 2)]
  
# printing result
print("All possible slices for K strings : " + str(res))


Python3
# Python3 code to demonstrate working of
# All possible slices for K length
# Using combinations() + zip() + list comprehension
from itertools import combinations
  
# initializing string
test_str = "Gfg4all"
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing number of slices
K = 3
  
# combinations used to perform all possible slices
res = [[test_str[idx: j] for idx, j in zip([None, *sub], [*sub, None])]
       for sub in combinations(range(1, len(test_str)), K - 1)]
  
# printing result
print("All possible slices for K strings : " + str(res))


输出:

方法#2:使用组合() + zip() +列表理解

在这种情况下,组合用于获取迭代期间使用切片计算的范围的所有可能子串。

蟒蛇3

# Python3 code to demonstrate working of
# All possible slices for K length
# Using combinations() + zip() + list comprehension
from itertools import combinations
  
# initializing string
test_str = "Gfg4all"
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing number of slices
K = 3
  
# combinations used to perform all possible slices
res = [[test_str[idx: j] for idx, j in zip([None, *sub], [*sub, None])]
       for sub in combinations(range(1, len(test_str)), K - 1)]
  
# printing result
print("All possible slices for K strings : " + str(res))

输出: