Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Author - Saurav Kalsoor
- // Finding Kth Smallest - JAVA
- import java.util.Vector;
- import java.util.*;
- public class Test {
- static Scanner sc = new Scanner(System.in);
- public static void swap(char ch[],int i,int j) {
- char temp = ch[i];
- ch[i] = ch[j];
- ch[j] = temp;
- }
- public static void findingAllRearrangements(char ch[],int n,Vector<String> v,int itr){
- if(itr==n-1){
- String s = "";
- for(char i : ch) {
- s+=i;
- }
- v.add(s);
- return;
- }
- HashSet<Character> hs = new HashSet<Character>();
- for(int i=itr;i<n;i++) {
- if(!hs.contains(ch[i])) {
- hs.add(ch[i]);
- swap(ch,itr,i);
- findingAllRearrangements(ch,n,v,itr+1);
- swap(ch,itr,i);
- }
- }
- }
- public static String findingKthSmallest(int n, int k, String s){
- char ch[] = s.toCharArray();
- Vector<String> v = new Vector<String>();
- findingAllRearrangements(ch,n,v,0);
- Collections.sort(v);
- if(k<=v.size()) {
- return v.get(k-1);
- }
- return "-1";
- }
- public static void main(String[] args) {
- int n = sc.nextInt();
- int k = sc.nextInt();
- String s = sc.next();
- System.out.println(findingKthSmallest(n,k,s));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement