Skip to content

Instantly share code, notes, and snippets.

View atonamy's full-sized avatar
🏠
Working from home

Atonamy atonamy

🏠
Working from home
  • Singapore
View GitHub Profile
fun main(args : Array<String>) {
println("abc".generatePermutations())
}
fun StringBuilder.generatePermutations(start: Int = 0, finish: Int = length-1,
result: MutableSet<String> = HashSet()) : Set<String> {
if(start == finish)
result.add(String(this))
else
for(i in start .. finish) {
fun main(args : Array<String>) {
println("A man, a plan, a canal, Panama!".isContainsPalindrome())
}
fun String.isContainsPalindrome(): Boolean {
// handel edge cases
if(length == 0)
return false
@atonamy
atonamy / QuickSort.kt
Created October 30, 2017 15:25
Beautiful implementation of quick sort on Kotlin
package quicksort
import java.util.Collections
fun main(args : Array<String>) {
val list = "abcdefghijklmnopqrstuvwxyz".toMutableList()
Collections.shuffle(list)
println("before sort: $list")
list.quicksort()
package NearbyWords
import java.util.LinkedList
import kotlin.collections.HashSet
typealias CharSet = MutableFifthly<Set<Char>, Iterator<Char>, Char?, Long, Long>
class MutableFifthly<A, B, C, D, E>(
var first: A,
var second: B,
@atonamy
atonamy / NearbyWordsAlt.kt
Last active October 30, 2017 01:56
Alternative solution for https://www.facebook.com/Engineering/videos/10152735777427200/ which give complexity O(n^3)
package NearbyWordsAlt
import kotlin.collections.HashSet
fun main(args : Array<String>) {
println(nearbyWords("gi"))
}
fun getAllWordPermutations(word: String): Set<String> {
package NearbyWords
import kotlin.collections.HashSet
fun main(args : Array<String>) {
println(nearbyWords("gi"))
}
fun nearbyWords(word: String): Set<String> {
val permutations = getAllWordPermutations(word, 0)