[英]How to find the shortest consecutive substring which contains certain characters in a string in python?
明天我有一场高中编程比赛,在练习时我发现了很多问题,这是我问的问题。
具体而言,在这个特定的任务,你有一个包含范围可以从1到K的数字的字符串。 假设K是 4,字符串可以是1234
、 1222231
、 124123143
、 1311233114
或类似的东西。
我被要求找到包含从 1 到K 的所有值的最短连续子字符串的长度。 如果这样的子字符串不存在,我应该返回-1
。
如果我解释得不够清楚,如果字符串是1234
,最短的子字符串将是1234
,其长度是 4 。如果是1222231
,那里没有数字 4 ,所以它应该返回-1
。 在124123143
,最短长度也是 4 ( 4123
, 2314
),如果是1311233114
,则最短长度为 6 - 233114
。
找出这一点的最佳(或最简单)方法是什么?
对于 k=4 你可以做这样的事情
(?=([1234])(?!\1)([1234])(?!\1|\2)([1234])(?!\1|\2|\3)([1234]))
见演示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.