結果

問題 No.588 空白と回文
ユーザー kurenai3110
提出日時 2017-11-03 22:36:16
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 5 ms
コード長 669 Byte
コンパイル時間 467 ms
使用メモリ 1,524 KB
最終ジャッジ日時 2018-11-10 10:21:00

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
0.txt AC 3 ms
1,508 KB
1.txt AC 4 ms
1,508 KB
2.txt AC 2 ms
1,512 KB
3.txt AC 4 ms
1,520 KB
4.txt AC 4 ms
1,508 KB
5.txt AC 3 ms
1,508 KB
6.txt AC 3 ms
1,520 KB
7.txt AC 4 ms
1,508 KB
8.txt AC 3 ms
1,512 KB
9.txt AC 4 ms
1,508 KB
10.txt AC 3 ms
1,508 KB
11.txt AC 5 ms
1,524 KB
12.txt AC 4 ms
1,520 KB
13.txt AC 4 ms
1,512 KB
14.txt AC 2 ms
1,508 KB
15.txt AC 4 ms
1,512 KB
16.txt AC 3 ms
1,512 KB
17.txt AC 3 ms
1,524 KB
18.txt AC 3 ms
1,516 KB
19.txt AC 3 ms
1,508 KB
20.txt AC 5 ms
1,524 KB
21.txt AC 4 ms
1,520 KB
22.txt AC 5 ms
1,520 KB
23.txt AC 4 ms
1,524 KB
24.txt AC 2 ms
1,512 KB
テストケース一括ダウンロード

ソースコード

diff #
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int solve1(string S, int i) {
	int ans = 1;
	for (int j = 1;; j++) {
		if (i - j < 0 || i + j >= S.size())break;

		if (S[i - j] == S[i + j])ans += 2;
	}

	return ans;
}
int solve2(string S, int i) {
	int ans = 0;
	for (int j = 1;; j++) {
		if (i - j < 0 || i + j > S.size())break;

		if (S[i - j] == S[i + j - 1])ans += 2;
	}

	return ans;
}

int main()
{
	string S; cin >> S;

	int ans = 1;
	for(int i=0;i<S.size();i++){
		ans = max(ans, solve1(S, i));
	}
	for (int i = 1; i< S.size(); i++) {
		ans = max(ans, solve2(S, i));
	}
	cout << ans << endl;

    return 0;
}

0