Re: Non Continuous Subsequences
- From: Mensanator <mensanator@xxxxxxx>
- Date: Thu, 31 Jul 2008 10:46:50 -0700 (PDT)
On Jul 30, 11:32 am, bearophileH...@xxxxxxxxx wrote:
This post is not about practical stuff, so if you have little time,
you may ignore it.
This is a task of the rosettacode.org site:http://www.rosettacode.org/wiki/Non_Continuous_Subsequences
A subsequence contains some subset of the elements of this sequence,
in the same order. A continuous subsequence is one in which no
elements are missing between the first and last elements of the
subsequence. The task is to enumerate all non-continuous subsequences
for a given sequence.
That's equivalent to asking which n-bit binary numbers have
at least one 0 bracketed by 1s, isn't it?
import gmpy
import re
for i in xrange(32):
s = gmpy.digits(i,2).zfill(5) # convert to base 2 (padded)
m = re.search('10+1',s) # at least one 0 between 1s
if m:
z = [j+1 for j,i in enumerate(s) if i=='1']
print z
## [3, 5]
## [2, 5]
## [2, 4]
## [2, 4, 5]
## [2, 3, 5]
## [1, 5]
## [1, 4]
## [1, 4, 5]
## [1, 3]
## [1, 3, 5]
## [1, 3, 4]
## [1, 3, 4, 5]
## [1, 2, 5]
## [1, 2, 4]
## [1, 2, 4, 5]
## [1, 2, 3, 5]
.
- References:
- Non Continuous Subsequences
- From: bearophileHUGS
- Non Continuous Subsequences
- Prev by Date: Re: Non Continuous Subsequences
- Next by Date: Re: Boolean tests [was Re: Attack a sacred Python Cow]
- Previous by thread: Re: Non Continuous Subsequences
- Next by thread: Interbase
- Index(es):
Relevant Pages
|