Best shuffle: Difference between revisions

Kotlin version enhanced
(Kotlin version)
(Kotlin version enhanced)
Line 1,712:
operator fun invoke(s1: String) : String {
val s2 = s1.toCharArray()
s2.shuffle(s2)
for (i in s2.indices)
if (s2[i] == s1[i])
Line 1,722:
break
}
return s1 + ' ' + String(s2) + " (" + s2.count(s1, s2) + ')'
}
 
private fun CharArray.shuffle(text: CharArray) {
val rand = Random()
for (i in text.size - 1 downTo 1) {
val r = rand.nextInt(i + 1)
val tmp = textthis[i]
textthis[i] = textthis[r]
textthis[r] = tmp
}
}
 
private fun CharArray.count(s1: String, s2: CharArray) : Int {
var count = 0
for (i in s2.indices)
if (s1[i] == s2this[i])
count++
return count
Anonymous user