확장행렬을 바탕으로 문제를 토론해 보세요. 확장 행렬은 크기가 어느 정도 증가하는 행렬입니다.
여기에는 크기가 2의 배수로 확장된 문자 행렬이 있습니다. 즉, 원래 행렬의 크기가 N * N이면 확장된 행렬의 크기는 2N * 2N이 됩니다. (i, j)에 위치한 문자 시퀀스가 주어지고 (i, (j - N - 1)%N)에 위치한 문자 시퀀스를 반환해야 합니다.
일부 초기 확장 행렬을 시각화하여 이해해 보겠습니다.
Given Matrix -> [ a, b ] [ c, d ], 2 X 2 matrix Multiplying with { a, b, c, d } A X [ a, b ] B X [ a, b ] C X [ a, b ] D X [ a, b ] [ c, d ] [ c, d ] [ c, d ] [ c, d ] Expanded Matrix -> [ aa, ab, ba, bb ] [ ac, ad, bc, bd ] [ ca, cb, da, db ] [ cc, cd, dc, dd ], 4X4 matrix To expand again, multiply it by { a, b, c, d } and a matrix of size 8X8 will be formed. Expanded Matrix - > [ aaa, aab, aba, abb, baa, bab, bba, bbb ] [ aac, aad, abc, abd, bac, bad, bbc, bbd ] [ aca, acb, ada, adb, bca, bcb, bda, bdb ] [ acc, acd, adc, add, bcc, bcd, bdc, bdd ] [ caa, cab, cba, cbb, daa, dab, dba, dbb ] [ cac, cad, cbc, cbd, dac, dad, dbc, dbd ] [ cca, ccb, cda, cdb, dca, dcb, dda, ddb ] [ ccc, ccd, cdc, cdd, dcc, dcd, ddc, ddd ]
이것은 두 개의 초기 확장 행렬입니다. 문자 시퀀스 "bcc"를 얻었다고 가정하면 바로 왼쪽 시퀀스인 "add"를 반환해야 합니다. 또한, 행렬이 순환적이라고 가정하면, 즉 주어진 시퀀스가 (i, 0)에 있으면 (i, N-1)에서 시퀀스를 반환합니다.
Input: abb Output: aba Explanation: The sequence just left to abb is aba in the 8X8 matrix. Input: aadc Output: aacd Input: abbcd Output: abbcc
먼저 문제를 생각해 보세요. , 생각나는 유일한 해결책 해결책은 주어진 시퀀스를 포함하지만 그다지 복잡해 보이지는 않는 확장 행렬을 찾는 것입니다. 먼저 행렬을 구성한 다음 시퀀스를 검색해야 합니다.
초기 확장 행렬을 살펴본 후 이전 요소를 확인할 수 있는 패턴을 발견했습니다. 즉,
은 마지막 인덱스부터 시작하여 문자 시퀀스를 순회합니다.
인덱스 요소가 'b' 또는 'd'인 경우 이를 'a' 또는 'c'로 변경하고 배열 순회를 중지합니다.
색인 요소가 'a' 또는 'c'인 경우 'b' 또는 'd'로 변경하고 다음 색인으로 이동하여 확인합니다.
위 메서드의 C++ 코드
#include <bits/stdc++.h> using namespace std; int main (){ string seq = "abbcd"; int n = seq.length (); // traverse through the string from last. for (int i = n; i >= 0; i--){ // if the element is b or d, change them and stop traversing. if (seq[i] == 'b'){ seq[i] = 'a'; break; } if (seq[i] == 'd'){ seq[i] = 'c'; break; } // if an element is b or d, change them and move to the next element. if (seq[i] == 'a') seq[i] = 'b'; else if (seq[i] == 'c') seq[i] = 'd'; } cout << "The Previous sequence is: " << seq; return 0; }
The previous sequence is: abbcc
이 글에서는 확장 문자 행렬과 그 구성 방식에 대해 논의했습니다. 또한 확장 행렬에서 이전 요소를 찾는 방법도 논의했습니다. 우리는 확장된 문자 매트릭스에 의해 생성된 패턴을 이해함으로써 이 문제를 해결했습니다.
우리는 이 문제를 해결하기 위해 C, Java, Python 등과 같은 프로그래밍 언어로 작성할 수 있는 C++ 코드에 대해서도 논의했습니다. 이 튜토리얼이 도움이 되기를 바랍니다.
위 내용은 확장 행렬에서 C++의 이전 요소를 반환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!