By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,365 Members | 3,180 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,365 IT Pros & Developers. It's quick & easy.

combinations of substrings

P: n/a
Can anyone suggest an algorithm or function to generate combinations/
permutations of a group of substrings stored in a vector. The
substrings consists of 3 letters and the resulting string combinations
should be of a size that is a multiple of 3.

Sep 23 '07 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On 24 Sep, 06:53, zgfar...@gmail.com wrote:
Can anyone suggest an algorithm or function to generate combinations/
permutations of a group of substrings stored in a vector. The
substrings consists of 3 letters and the resulting string combinations
should be of a size that is a multiple of 3.
check next_permutation() in STL.

Sep 24 '07 #2

P: n/a
zg******@gmail.com wrote:
Can anyone suggest an algorithm or function to generate combinations/
permutations of a group of substrings stored in a vector. The
substrings consists of 3 letters and the resulting string combinations
should be of a size that is a multiple of 3.
First, the problem is obfuscated (I suspect, it is homework): the groups of
3 letters just hide the abstract problem of generating permutations and
combinations. So, first take the input data apart and create a

std::vector< std::string >

that stores those groups of three letters.

Now, for permutations, life is easy because STL has next_permutation built
in.
For combinations, note that the problem of enumerating all combinations of
length n from a set of k items is equivalent to listing all n-digit
counting numbers in base k (because if you have such a number, each digits
represents one of k items and you have made exactly n such choices). Thus,
you could use a

std::vector< unsigned int >

and implement "add 1" in base k.
Best

Kai-Uwe Bux
Sep 24 '07 #3

This discussion thread is closed

Replies have been disabled for this discussion.