티스토리 뷰

Codesignal

code signal - 28. alphabeticShift

터보건 2020. 2. 23. 01:19

Question

Given a string, your task is to replace each of its characters by the next one in the English alphabet; i.e. replace a with b, replace b with c, etc (z would be replaced by a).


Example

  • For inputString = "crazy", the output should be alphabeticShift(inputString) = "dsbaz".

Input/Output

  • [execution time limit] 4 seconds (py3)

  • [input] string inputString

    A non-empty string consisting of lowercase English characters.

    Guaranteed constraints: 1 ≤ inputString.length ≤ 1000.

  • [output] string

    • The resulting string after replacing each of its characters.

MY_ANSWER

def alphabeticShift(inputString):
    answer = ""

    for i in inputString:
        if i == "z":
            answer += "a"
        else:
            answer += chr(ord(i)+1)

    return answer
  • inputString이 들어오면 다음 자리의 알파벳으로 대체해주는 작업, 마지막 알파벳 z 다음에는 없기 때문에 처음 알파벳 a로 대체해준다.
  • ord와 chr을 이용해 다음 문자로 넘어가는 것을 구현한다.
  • 예를 들어, ord('a')는 97를 반환 뒤 1을 더하고 chr() 사용하여 a문자 다음 b문자를 반환한다.

Best_ANSWER

def alphabeticShift(inputString):
    return ''.join((chr(ord(i)+1) if i!="z" else "a" for i in inputString))
  • join과 list comprehension을 응용한 모습이다.

 

'Codesignal' 카테고리의 다른 글

code signal - 31. depositProfit  (0) 2020.03.01
code signal - 29. chessBoardCellColor  (0) 2020.02.23
code signal - 27. variableName  (0) 2020.02.23
code signal - 26. evenDigitsOnly  (0) 2020.02.23
code signal - 25. arrayReplace  (0) 2020.02.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함