기울어진 암호문 해독
originalText은 고정된 수의 행encodedText을 갖는 행렬의 도움으로 문자열rows에 대한 기울어진 전치 암호를 사용하여 인코딩됩니다.originalText가 왼쪽 위에서 오른쪽 아래로 첫 번째로 배치됩니다.
originalText 끝에 도달할 때까지 파란색 셀이 먼저 채워진 다음 빨간색 셀, 노란색 셀 순으로 채워집니다. 화살표는 셀이 채워지는 순서를 나타냅니다. 모든 빈 셀은 ' ' 로 채워집니다. 열 수는 originalText를 채운 후 가장 오른쪽 열이 비어 있지 않도록 선택됩니다.encodedText는 행렬의 모든 문자를 행 방향으로 추가하여 형성됩니다.
파란색 셀의 문자가 먼저
encodedText 에 추가된 다음 빨간색 셀에 추가되고 마지막으로 노란색 셀에 추가됩니다. 화살표는 셀이 액세스되는 순서를 나타냅니다.예를 들어
originalText = "cipher" 및 rows = 3 인 경우 다음과 같은 방식으로 인코딩합니다.
파란색 화살표는
originalText가 매트릭스에 배치되는 방식을 나타내고 빨간색 화살표는 encodedText가 형성되는 순서를 나타냅니다. 위의 예에서 encodedText = "ch ie pr" .인코딩된 문자열
encodedText과 행 수rows가 주어지면 원래 문자열originalText을 반환합니다.참고:
originalText에는 후행 공백이 없습니다' '. 가능한 테스트 사례가 하나만 있도록 테스트 사례가 생성됩니다originalText.예 1:
입력: encodingText = "ch ie pr", 행 = 3
출력: "암호"
설명: 이것은 문제 설명에 설명된 것과 동일한 예입니다.
예 2:

입력: encodingText = "iveo eed l te olc", 행 = 4
출력: "나는 leetcode를 사랑합니다"
설명: 위 그림은 originalText를 인코딩하는 데 사용된 행렬을 나타냅니다.
파란색 화살표는 어떻게 encodingText에서 originalText를 찾을 수 있는지 보여줍니다.
예 3:

입력: encodingText = "코딩", 행 = 1
출력: "코딩"
설명: 행이 1개뿐이므로 originalText와 encodingText는 모두 동일합니다.
제약:
0 <= encodedText.length <= 106 encodedText는 영문 소문자와 ' '로만 구성됩니다. encodedText는 후행 공백이 없는 일부originalText의 유효한 인코딩입니다. 1 <= rows <= 1000 originalText. 해결책:
class Solution:
def decodeCiphertext(self, encodedText: str, rows: int) -> str:
m, n = rows, len(encodedText) // rows
op = ""
for i in range(n):
for j in range(m):
if i + j < n:
op += encodedText[(n + 1) * j + i]
return op.rstrip()
Reference
이 문제에 관하여(기울어진 암호문 해독), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/decode-the-slanted-ciphertext-3fjd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)