Monday, December 3, 2012

String Permutation programm using c++

First of all i like to say this is a little bit advanced programme for beginners who can't understand the code looking at that.. You try to understand the code than definitely you will write code without plagiarism. :) 

The trick to string permutations is to find all permutations that begin with one letter, then all permutations that begin with a second letter, and so forth. This might suggest a recursive solution: in order to find all permutations that begin with a given letter, call permute on the remainder of the string, thereby finding all permutations of the substring using the same algorithm.

permute string
and output should be a word per line.
Here is a sample for the input cat:
cat
cta
act
atc
tac
tca

#include <iostream>
#include <string>
using namespace std;

string swtch(string topermute, int x, int y)
{
 string newstring = topermute;
 newstring[x] = newstring[y];
 newstring[y] = topermute[x]; //avoids temp variable
 return newstring;
}
void permute(string topermute, int place)
{
 if(place == topermute.length() - 1)
 {
  cout<<topermute<<endl;
 }
 for(int nextchar = place; nextchar < 
     topermute.length(); nextchar++)
 {
  permute(swtch(topermute, place, nextchar),
          place+1);
 }
}

int main(int argc, char* argv[])
{
 if(argc!=2)
 {
  cout<<"Proper input is 'permute string'";
                return 1;
 }
        permute(argv[1], 0);
}
Many other solutions exist! If yours doesn't match the Learn4Develop key, but it still works, let us know and we'll upload it as an alternative answer. For instance, if you have a solution that doesn't use the string library, or if you use only C++ i/o, let us know so that we can upload it as an example for those who haven't learned about certain topics.

1 comment:

  1. Casino Review 2021 | Is Casino Welcome or Scam?
    Casino Review. Casino players from Canada know that the online 벳 365 우회 casino 메이저 리그 분석 has been around for 다 파벳 먹튀 decades, and that's 바카라잔 not something 하랑 도메인 that many gamblers miss out on.

    ReplyDelete