結果
| 問題 |
No.273 回文分解
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-11-28 03:31:47 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
AC
|
| 実行時間 | 318 ms / 2,000 ms |
| コード長 | 1,783 bytes |
| コンパイル時間 | 13,545 ms |
| コンパイル使用メモリ | 445,744 KB |
| 実行使用メモリ | 51,100 KB |
| 最終ジャッジ日時 | 2024-11-20 04:40:40 |
| 合計ジャッジ時間 | 25,989 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
コンパイルメッセージ
Main.kt:6:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
^
Main.kt:49:14: warning: variable 'ch' is never used
for ((i, ch) in inputStr.withIndex()) {
^
ソースコード
package Yukicoder
/**
* Created by hichikawa on 2015/11/12.
*/
fun main(args: Array<String>) {
fun readLineLongArray(): List<Long> {
val str = readLine() as String
val arrStr = str.split(" ")
val ret = arrStr.map { it.toLong() }
return ret
}
fun readLineLong(): Long {
val str = readLine() as String
return str.toLong()
}
fun readLineInt(): Int {
val str = readLine() as String
return str.toInt()
}
fun readLineIntArray() : List<Int> {
val str = readLine() as String
val arrStr = str.split(" ")
val ret = arrStr.map { it.toInt() }
return ret
}
fun readLineDoubleArray(): List<Double> {
val str = readLine() as String
val arrStr = str.split(" ")
val ret = arrStr.map { it.toDouble() }
return ret
}
fun checkKai(str : String , startIndex : Int, endIndex : Int) : Boolean{
for (i in 0..((endIndex-startIndex)/2)) {
if (str.get(startIndex+i) != str.get(endIndex-i)) {
return false
}
}
return true
}
val inputStr = readLine() as String
var maxI = Int.MIN_VALUE
for ((i, ch) in inputStr.withIndex()) {
// var lastIndex = inputStr.length
var lastIndex = if (i != 0) inputStr.length else inputStr.length-1
do {
lastIndex = inputStr.lastIndexOf(inputStr[i], lastIndex-1)
if (checkKai(inputStr, i, lastIndex)) {
// println((lastIndex-i).toString() + " " + i + " " + lastIndex)
if (maxI <= (lastIndex-i)) {
maxI = lastIndex-i+1
}
break
}
} while (i < lastIndex)
}
println(maxI)
}