A. Déjà Vu | Round #712 Div.2

LONGNEW·2021년 7월 27일
0

CP

목록 보기
67/155

https://codeforces.com/contest/1504/problem/A
시간 2초, 메모리 256MB

input :

  • t (1 ≤ t ≤ 104)
  • 소문자로 이뤄진 문장 s

output :

  • For each test case, if there is no solution, output "NO".
    Otherwise, output "YES" followed by your constructed string of length |s|+1 on the next line.
    정답이 존재하지 않으면 "NO"를 그렇지 않은 경우에는 "YES"를 출력하고 만들 수 있는 문장을 그 다음 줄에 출력하시오.

조건 :

  • There is a string s. You must insert exactly one character 'a' somewhere in s. If it is possible to create a string that is not a palindrome, you should find one example.
    문자열 s가 있을 때 'a'를 하나 추가합니다. 추가한 문자열이 팰린드롬이 아닌 경우가 존재하는지 확인하시오.

a를 추가해서도 팰린드롬이 가능하려면?
모든 문자가 a여야 한다. 그리고 이런 경우에는 맨 앞, 뒤에 a를 추가하는 것만으로도 확인할 수 있다.

그러나 이 방법을 사용하지 않고 그냥 모든 문자를 확인했다.

import sys

def check():
    for i in range(len(data)):
        if 'a' != data[compare_idx - i]:
            return data[:i] + 'a' + data[i:]
    return -1

t = int(sys.stdin.readline())
for _ in range(t):
    data = sys.stdin.readline().rstrip()
    compare_idx = len(data) - 1

    ans = check()
    if ans == -1:
        print("NO")
    else:
        print("YES")
        print("".join(ans))

0개의 댓글