anurag wrote:
> write a function to print all permutations of a string.can anyone
> please help me
Here is a generic program (written in Java) which does this for a
collection of objects. You can easily adapt it for a string.
import java.util.List;
import java.util.Iterator;
import java.util.Collection;
import java.util.ArrayList;
public class Permute {
public static void main(String[] args) {
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
Collection result = permute(list);
Iterator it = result.iterator();
int count = 1;
while (it.hasNext()) {
ArrayList al = (ArrayList)it.next();
System.out.print(count+". ");
for (int i = 0; i < al.size(); i++) {
System.out.print(((Integer)al.get(i)).intValue()+" ");
}
System.out.println();
count++;
}
}
/*
Find permutations of a list of objects
*/
static Collection permute(List list) {
Collection result = new ArrayList();
if (list.size() == 1) {
ArrayList temp = new ArrayList();
temp.add(list.get(0));
result.add(temp);
}
else if (list.size() == 2) {
ArrayList temp1 = new ArrayList();
temp1.add(list.get(0));
temp1.add(list.get(1));
ArrayList temp2 = new ArrayList();
temp2.add(list.get(1));
temp2.add(list.get(0));
result.add(temp1);
result.add(temp2);
}
else {
Collection temp = permute(list.subList(1, list.size()));
Iterator it = temp.iterator();
while (it.hasNext()) {
ArrayList al = (ArrayList)it.next();
for (int i = 0; i <= al.size(); i++) {
List x = al.subList(0, i);
List y = al.subList(i, al.size());
ArrayList t = new ArrayList();
t.addAll(x);
t.add(list.get(0));
t.addAll(y);
result.add(t);
}
}
}
return result;
}
}
Regards,
Mukul
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---