Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 300 点
問題文
英小文字からなる文字列 S が与えられます。
S の先頭に a
をいくつか( 0 個でも良い)つけ加えて回文にすることができるか判定してください。
ただし、長さ N の文字列 A=A_1A_2\ldots A_N が回文であるとは、すべての 1\leq i\leq N について A_i=A_{N+1-i} が成り立っていることをいいます。
制約
- 1 \leq \lvert S \rvert \leq 10^6
- S は英小文字のみからなる。
入力
入力は以下の形式で標準入力から与えられる。
S
出力
S の先頭に a
をいくつかつけ加えて回文にすることができるならば Yes
を、そうでないならば No
を出力せよ。
入力例 1
kasaka
出力例 1
Yes
kasaka
の先頭に a
を 1 つ付け加えることによって、akasaka
となり回文となるため Yes
を出力します。
入力例 2
atcoder
出力例 2
No
atcoder
の先頭に a
をいくつ付け加えても回文となる事はありません。
入力例 3
php
出力例 3
Yes
php
はそれ自体回文です。S の先頭に付け加える a
は 0 個でも許されるため、Yes
を出力します。
Score : 300 points
Problem Statement
Given is a string S consisting of lowercase English letters.
Determine whether adding some number of a
's (possibly zero) at the beginning of S can make it a palindrome.
Here, a string of length N, A=A_1A_2\ldots A_N, is said to be a palindrome when A_i=A_{N+1-i} for every 1\leq i\leq N.
Constraints
- 1 \leq \lvert S \rvert \leq 10^6
- S consists of lowercase English letters.
Input
Input is given from Standard Input in the following format:
S
Output
If adding some number of a
's (possibly zero) at the beginning of S can make it a palindrome, print Yes
; otherwise, print No
.
Sample Input 1
kasaka
Sample Output 1
Yes
By adding one a
at the beginning of kasaka
, we have akasaka
, which is a palindrome, so Yes
should be printed.
Sample Input 2
atcoder
Sample Output 2
No
Adding any number of a
's at the beginning of atcoder
does not make it a palindrome.
Sample Input 3
php
Sample Output 3
Yes
php
itself is a palindrome. Adding zero a
's at the beginning of S is allowed, so Yes
should be printed.