알고리즘

section3.1 회문 문자열 검사

gitofjy 2022. 10. 25. 19:06

N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다. 단 회문을 검사할 때 대소문자를 구분하지 않습니다.

 

 

import sys
sys.stdin = open("input.txt", "rt")
n = int(input())

for i in range(n):
    tmp = input()
    tmp = tmp.lower()

    for j in range(len(tmp)//2):
        if tmp[j]!=tmp[len(tmp)-1-j]:
            print("#%d NO" %(i+1))
            break
    else:
        print("#%d YES" %(i+1))

 

파이썬 print format이 조금 헷갈려서 헤맸다

자바에서는 , 로 나눠져 있어서 당연히 그렇다고 생각했는데 파이썬은 , 없이 그냥 쓰면 된다

 

import sys
sys.stdin = open("input.txt", "rt")
n = int(input())

for i in range(n):
    s = input()
    s = s.upper()
    size = len(s)
    for j in range(size//2):
        if s[j] != s[-1-j]:
            print("#%d NO" %(i+1))
            break
    else:
        print("#%d YES" %(i+1))
for i in range(n):
    s = input()
    s = s.upper()
    if s == s[::-1]:
        print("#%d YES" %(i+1))
    else:
        print("#%d NO" %(i+1))

 

중간에 for문에서 s[::-1]을 하면 반대로 출력이 된다

 

 

 

파이썬 format

print("문자열 %s 숫자 %d %s" %(1번째, 2, "추가 문자도 가능"))
# 문자열 1번째 숫자 2 추가 문자도 가능
print("첫 번째는 {0}이고 두 번째는 {1}이며 마지막은 {2}입니다.".format(문자, 3, "추가문자"))
# 첫 번째는 문자이고 두 번째는 3이며 마지막은 추가문자입니다.

%d%% > d% 출력 : %를 사용할 때는 %% 두 번 작성

 

728x90