문자열 s가 있다고 가정합니다. 실행 길이 인코딩 기술을 사용하여 이것을 인코딩해야 합니다. 아시다시피, 실행 길이 인코딩은 문자열을 인코딩하는 빠르고 간단한 방법입니다. 아이디어는 다음과 같습니다 - 하나의 카운트 및 문자로 반복되는 연속 요소(문자).
따라서 입력이 s ="BBBBAAADDCBB"와 같으면 출력은 "4B3A2D1C2B"가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- res :=빈 문자열
- tmp :=s의 첫 번째 문자
- 카운트:=1
- 범위 1에서 s까지의 i에 대해 다음을 수행합니다.
- s[i]가 tmp와 같지 않으면
- res :=res concatenate count concatenate tmp
- tmp :=s[i]
- 카운트:=1
- 그렇지 않으면
- 카운트 :=카운트 + 1
- s[i]가 tmp와 같지 않으면
- return res concatenate count concatenate tmp
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, s): res = "" tmp = s[0] count = 1 for i in range(1,len(s)): if s[i] != tmp: res += str(count) + tmp tmp = s[i] count = 1 else: count += 1 return res + str(count) + tmp ob = Solution() print(ob.solve("BBBBAAADDCBB"))
입력
"BBBBAAADDCBB"
출력
4B3A2D1C2B