Submission #67625528
Source Code Expand
const fs = require("fs");
/**
* 最長回文部分列の長さを返す関数
* @param {string} S - 対象の文字列(英小文字)
* @returns {number} - 最長の回文部分列の長さ
*/
function longestPalindromicSubsequence(S) {
const N = S.length;
const dp = Array.from({ length: N }, () => Array(N).fill(0));
// 1文字は必ず回文
for (let i = 0; i < N; i++) {
dp[i][i] = 1;
}
// 長さ2以上の部分列に対するDP
for (let len = 2; len <= N; len++) {
for (let i = 0; i <= N - len; i++) {
const j = i + len - 1;
if (S[i] === S[j]) {
dp[i][j] = (len === 2) ? 2 : dp[i + 1][j - 1] + 2;
} else {
dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]);
}
}
}
return dp[0][N - 1];
}
// 入力読み取り
const input = fs.readFileSync("/dev/stdin", "utf8").trim().split("\n");
const N = Number(input[0]);
const S = input[1];
// 出力
console.log(longestPalindromicSubsequence(S));
Submission Info
| Submission Time | |
|---|---|
| Task | B21 - Longest Subpalindrome |
| User | myoshizumi |
| Language | JavaScript (Node.js 18.16.1) |
| Score | 1000 |
| Code Size | 1080 Byte |
| Status | AC |
| Exec Time | 77 ms |
| Memory | 60920 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, sample_01.txt, sample_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 40 ms | 42704 KiB |
| in02.txt | AC | 40 ms | 42752 KiB |
| in03.txt | AC | 40 ms | 42808 KiB |
| in04.txt | AC | 40 ms | 42756 KiB |
| in05.txt | AC | 41 ms | 42764 KiB |
| in06.txt | AC | 42 ms | 42828 KiB |
| in07.txt | AC | 77 ms | 47044 KiB |
| in08.txt | AC | 49 ms | 49244 KiB |
| in09.txt | AC | 49 ms | 49340 KiB |
| in10.txt | AC | 49 ms | 49504 KiB |
| in11.txt | AC | 52 ms | 51608 KiB |
| in12.txt | AC | 54 ms | 52964 KiB |
| in13.txt | AC | 56 ms | 53776 KiB |
| in14.txt | AC | 59 ms | 57060 KiB |
| in15.txt | AC | 64 ms | 60756 KiB |
| in16.txt | AC | 64 ms | 60816 KiB |
| in17.txt | AC | 67 ms | 60868 KiB |
| in18.txt | AC | 66 ms | 60856 KiB |
| in19.txt | AC | 41 ms | 42856 KiB |
| in20.txt | AC | 63 ms | 60836 KiB |
| in21.txt | AC | 63 ms | 60920 KiB |
| in22.txt | AC | 61 ms | 60892 KiB |
| in23.txt | AC | 61 ms | 60920 KiB |
| sample_01.txt | AC | 40 ms | 42872 KiB |
| sample_02.txt | AC | 40 ms | 42824 KiB |