>백엔드 개발 >C++ >암호화된 문자열

암호화된 문자열

王林
王林앞으로
2023-09-08 10:37:021145검색

암호화된 문자열

암호화는 특정 기술이나 특정 단계를 사용하여 데이터를 다른 종류의 정보로 변경하거나 이전 정보를 직접 수집할 수 없도록 변경하는 기술입니다. 암호화를 위해서는 특정 암호화 유형에 대해 고정된 특정 단계를 따라야 합니다.

이 질문에서 우리는 문자열을 얻게 되며 주어진 단계에 따라 이를 암호화해야 합니다. -

  • 먼저 동일한 문자를 포함하는 모든 하위 문자열을 가져와 해당 하위 문자열을 단일 문자와 하위 문자열의 길이로 바꿔야 합니다.

  • 이제 길이를 16진수 값으로 변경하고, 16진수 값의 모든 문자를 소문자로 변경해야 합니다.

  • 마지막으로 전체 문자열을 반대로 바꿉니다.

으아아아 으아아아

지침

먼저 동일한 수의 문자를 포함하는 모든 하위 문자열을 가져와서 문자의 빈도로 바꾸면 문자열 "a2b3c4"가 됩니다. 이제 길이를 16진수 값으로 변경했지만 2, 3, 4는 16진수 형태로 동일한 값을 갖습니다. 마지막으로 문자열을 뒤집으면 최종 결과는 4c3b2a가 됩니다.

으아아아 으아아아

지침

먼저 문자열을 주파수 문자열 "o12"로 변환합니다. 이제 16진수 값 12는 C입니다. 이를 소문자, 즉 c로 변경하고 이를 문자열로 바꾼 다음 문자열을 반대로 바꿉니다.

방법

위의 예를 통해 문제에 대한 아이디어를 얻었으니 이제 구현 부분으로 넘어가겠습니다 -

  • 구현에서는 먼저 입력을 정수로 취하고 문자열을 반환 값으로 반환하는 함수를 구현하겠습니다.

  • 이 함수는 한 번의 수정으로 주어진 정수를 16진수 값으로 변환하는 데 사용됩니다. 즉, 영어 대문자 대신 소문자 영어를 사용합니다.

  • for 루프를 사용하여 문자열을 반복한 다음 동일한 문자의 하위 문자열에 대해 현재 문자와 동일한 문자를 찾을 때까지 while 루프를 사용하는 또 다른 함수를 정의합니다.

  • 빈도를 계산하여 16진수 값으로 변경한 후 현재 인덱스 문자가 있는 문자열에 추가하겠습니다.

  • 마지막으로 문자열을 뒤집어서 인쇄를 위해 기본 함수로 반환합니다.

으아아아

출력

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N)입니다. 여기서 N은 주어진 문자열의 크기입니다. 문자열을 순회하는 데 N 시간이 걸렸고, 문자열을 뒤집는 데는 N 시간 미만이 걸렸습니다.

최종 문자열을 저장하는 위 코드의 공간 복잡도는 O(N)입니다. 이를 무시하면 추가 공간이 사용되지 않습니다.

주의

암호화는 무한한 방법으로 수행될 수 있으며, 키를 암호화하는 규칙을 정의하기만 하면 됩니다. 암호화의 주요 특징은 동일한 입력에 대해 매번 동일한 결과를 제공해야 한다는 것입니다.

결론

이 튜토리얼에서는 규칙에 따라 특정 문자열을 암호화하는 코드를 구현했습니다. 먼저 동일한 유형의 요소가 포함된 하위 문자열을 가져와서 이를 문자 및 해당 빈도로 바꿔야 합니다. 다음으로 빈도를 16진수로 변경하고 마지막으로 전체 문자열을 반전시킵니다. 위 코드의 시간 복잡도는 O(N)입니다.

위 내용은 암호화된 문자열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제