짝수 위치에 소문자 영어 문자를 포함하고 홀수 위치에 숫자를 포함하는 영숫자 문자열 s가 있다고 가정합니다. c가 임의의 문자이고 x가 숫자(숫자)인 연산 shift(c, x)를 고려하면 c 다음의 x번째 문자를 찾습니다. 예를 들어 shift('p', 5) ='u' 및 shift('a', 0) ='a'입니다. 이제 모든 홀수 인덱스 i에 대해 숫자 s[i]를 shift(s[i-1], s[i])로 교체하려고 합니다. 모든 숫자를 교체한 후 s를 찾아야 합니다.
따라서 입력이 s ="a2b1d4f3h2"와 같으면 출력은 "acbcdhfihj"가 됩니다.
-
shift('a', 2) ='c'
-
shift('b', 1) ='c'
-
shift('d', 4) ='h'
-
shift('f', 3) ='i'
-
shift('h', 2) ='j'
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
res:=빈 문자열
-
범위 0에서 s까지의 i에 대해
-
s[i]가 숫자이면
-
res :=res 연결 문자 from (ASCII s[i] + ASCII of s[i-1])
-
-
그렇지 않으면
-
res :=res 연결 s[i]
-
-
-
반환 해상도
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
def solve(s): res="" for i in range(len(s)): if s[i].isdigit(): res+= chr(int(s[i])+ord(s[i-1])) else: res+=s[i] return res s = "a2b1d4f3h2" print(solve(s))
입력
"a2b1d4f3h2"
출력
acbcdhfihj