본문 바로가기

Python_Matter/COS Pro

YBM Python Test Level 2 - 팰린드롬

반응형

Q>

앞에서부터 읽을 때와 뒤에서부터 읽을 때 똑같은 단어 또는 문장을 팰린드롬이라고 합니다.

예를 들어서 racecar, noon은 팰린드롬 단어입니다.

 

소문자 알파벳, 공백(' '), 그리고 마침표('.') 이루어진 문장이 팰린드롬 문장인지 점검하려 합니다.

문장 내에서 알파벳만 추출하였을 때에 팰린드롬 단어이면 팰린드롬 문장입니다.

 

예를 들어, "Never odd or even"과 같은 문장은 팰린드롬입니다.

 

소문자 알파멧, 공백(' '), 그리고 마침표('.')로 이루어진 문장 sentence가 주어질 때 팰린드롬인지 아닌지를 return 하도록

solution 함수를 작성햇씁니다.

 

그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다.

주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정해주세요.

 

- 매개변수 설명

소문자 알파멧, 공백(' '), 그리고 마침표('.')로 이루어진 문장 sentence가 solution 함수의 매개변수로 주어집니다.

* sentence의 길이는 1 이상 100 이하 입니다.

* sentence에는 적어도 하나의 알파벳이 포함되어 있습니다.

* sentence의 각 문자는 소문자 알파벳, 공백(' '), 또는 마침표('.') 입니다.

 

- return 값 설명

주어진 문장이 팰린드롬인지 아닌지를 return 해주세요.

 

- 예시

sentence retrun
"never odd or even." true
"palindrome" false

 

- 예시 설명

예시 1# 알파벳과 숫자만 추출하여 소문자로 변호나해보면 "neveroddoreven"이 되며 이 단어는 팰린드롬입니다.

예시 2# 문장의 맨 앞 문자인 "p"와 맨 뒤 문자인 "e"가 다르므로 팰린드롬이 아닙니다.

 

A>

def solution(sentence):
    str = ''
    for c in sentence:
        if c != '.' and c != ' ':
            str += c
    size = len(str)
    for i in range(size // 2):
        if str[i] != str[size - 1 - i]:
            return False
    return True

sentence1 = "never odd or even."
ret1 = solution(sentence1)
print(ret1)

sentence2 = "palindrome"
ret2 = solution(sentence2)
print(ret2)

 

F>

2급_8_initial_code.py
0.00MB

 

#>

https://www.ybmit.com/cos_pro/cos_pro_r_test.jsp

반응형