結果
問題 |
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) }