프로그래머 | 이상한 문자 만들기(python python)

프로그램 제작자

코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.

Programmer.co.kr

처음 시도한 코드

def solution(s):
    answer=""
    s = s.split(' ')
    for word in s:
        for i in range(len(word)):
            if i % 2 == 0:
                answer += word(i).upper()
            else:
                answer += word(i).lower()
        answer += ' '
    return answer.rstrip()

주어진 문자열에서 각 단어의 짝수 첨자는 대문자로, 홀수 첨자는 소문자로 표시됩니다.

각 문자의 첨자가 짝수인지 홀수인지 판단하고, 상위, 상위(), 낮추다()를 사용하면 쉽게 해결할 수 있습니다.

그러나 위의 코드를 올바른 것으로 제출했을 때 절반 이상 실패했습니다.

그 이유는 다음과 같습니다.

단어는 s에서 개별적으로 제거되고 대소문자가 변경되며 단어 끝에 공백이 추가됩니다.

s를 공백으로 구분했으므로 다시 문자열로 나타내기 위해 공백을 추가해 보겠습니다.

하지만 반품에 문제가 있습니다.

물론 마지막 단어 뒤에 추가된 공백은 삭제되어야 한다고 생각하므로 오른쪽의 공백은 제거되어야 합니다. r스트립()필요한

r스트립()오른쪽에서 “모든” 공백 제거그래서 마지막 단어의 마지막 인덱스에 공백이 있으면 해당 단어에 포함된 공백도 삭제됩니다.

말로 설명하기 어려워서 제가 직접 예를 들어봤습니다.

soution에 ‘hello ddu’를 파라미터로 전달하면, 답변 1)의 결과로 답변.rstrip()각각의 결과를 출력하면 HeLlO DdU와 동일하게 나옵니다.


단, answer(:-1) == answer.rstrip()을 실행하면 False가 된다. 둘이 같지 않다는 것.

실제로 어떻게 다른지 확인하기 위해 answer(:-1) 및 answer.rstrip()을 목록으로 변경하고 각 요소를 살펴보았습니다.

왼쪽) Response(:-1) / 오른쪽) Response.rstrip()

answer(:-1)에서 DdU 뒤에 공백이 있는 것을 볼 수 있습니다.

반면에 answer.rstrip()에서는 DdU 뒤에 공백이 없습니다.

지정한 문자열이 ‘ddu’이므로 ddu 뒤에 공백이 있어야 합니다.

하지만 r스트립() 자연 때문에 전체 문자열 오른쪽에 있는 모든 공백 제거 그래서 이렇게 출력이 됩니다.

올바른 응답 코드

def solution(s):
    answer=""
    s = s.split(' ')
    for word in s:
        for i in range(len(word)):
            if i % 2 == 0:
                answer += word(i).upper()
            else:
                answer += word(i).lower()
        answer += ' '
    return answer(:-1)

따라서 위 코드의 return 문은 answer.rstrip()이 아닙니다. 답변 1)원하는 답을 찾기 위해.

다른 방법

def solution(s):
    answer = ()
    s = s.split(' ')
    for word in s:
        temp = ''
        for i in range(len(word)):
            if i % 2 == 0:
                temp += word(i).upper()
            else:
                temp += word(i).lower()
        answer.append(temp)
    return ' '.join(answer)

위의 코드는 공백을 생각해야 하므로 조금 어색해 보일 수 있습니다. 그래서 다르게 해결하려고 노력했습니다.

대답은 문자열이 아닙니다. 목록로 선언

그런 다음 동일한 문자열에서 단어의 대소문자를 변경합니다. 무엇이 다른가요? 온도에게 각 문자의 대소문자 변경 결과 저장하다.

단어가 끝나면 변경 결과 temp가 단어에 추가되고 모든 프로세스가 완료되면 응답 항목이 추가됩니다. 공백(‘ ‘)과 연결결과를 도출합니다.

이렇게 하면 각 단어 끝에 공백을 추가할 필요가 없으며 단어에 추가 공백이 있는 경우 반환 방법에 대해 걱정할 필요가 없습니다.