object Solution {
//[1, 3] [2]
fun findMedianSortedArrays(nums1: IntArray, nums2: IntArray): Double {
var i = 0
var j = 0
var k = 0
var newArray = IntArray(nums1.size + nums2.size)
while (i < nums1.size || j < nums2.size) {
var largerNum = -1
if (i < nums1.size && j < nums2.size) {
if(nums1[i] < nums2[j]) {
largerNum = nums1[i]
i++
} else {
largerNum = nums2[j]
j++
}
} else if (i < nums1.size) {
largerNum = nums1[i]
i++
} else if (j < nums2.size) {
largerNum = nums2[j]
j++
} else {
break
}
newArray[k] = largerNum
k++
}
if(newArray.size % 2 == 0) {
return (newArray[newArray.size / 2] + newArray[newArray.size / 2 - 1]) / 2.0
} else {
if (newArray.size > 2) {
return newArray[newArray.size / 2].toDouble()
} else {
return newArray[0].toDouble()
}
}
}
fun longestPalindrome(s: String): String {
var n = s.length
var originStr = s.toCharArray()
var maxStr: String
var longestStr: String = ""
for (i in 0 until originStr.size) {
maxStr = findPalindrome(s, i, i)
if (longestStr.length < maxStr.length) {
longestStr = maxStr
}
maxStr = findPalindrome(s, i, i + 1)
if (longestStr.length < maxStr.length) {
longestStr = maxStr
}
}
}
private fun findPalindrome(s: String, left: Int, right: Int) : String{
var n = s.length
var str = s.toCharArray()
var l = left
var r = right
while (l >= 0 && r < n && str[l] == str[r]) {
l --
r ++
}
return s.substring(l + 1, r)
}
}