Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Author - Saurav Kalsoor
- // Finding Kth Smallest - KOTLIN
- import java.util.*
- import java.lang.*
- var sc: Scanner = Scanner(System.`in`)
- fun main() {
- val n: Int = sc.nextInt()
- val k: Int = sc.nextInt()
- val s: String = sc.next()
- println(findingKthSmallest(n, k, s))
- }
- fun swap(ch: CharArray, i: Int, j: Int) {
- val temp = ch[i]
- ch[i] = ch[j]
- ch[j] = temp
- }
- fun findingAllRearrangements(ch: CharArray, n: Int, v: Vector<String>, itr: Int) {
- if (itr == n - 1) {
- var s: String = ""
- for (i in ch) {
- s += i
- }
- v.add(s)
- return
- }
- val hs: HashSet<Char> = HashSet<Char>()
- for (i in itr until n) {
- if (!hs.contains(ch[i])) {
- hs.add(ch[i])
- swap(ch, itr, i)
- findingAllRearrangements(ch, n, v, itr + 1)
- swap(ch, itr, i)
- }
- }
- }
- fun findingKthSmallest(n: Int, k: Int, s: String): String {
- val ch: CharArray = s.toCharArray()
- val v: Vector<String> = Vector<String>()
- findingAllRearrangements(ch, n, v, 0)
- Collections.sort(v)
- return if (k <= v.size) {
- v.get(k - 1)
- } else "-1"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement