>  기사  >  백엔드 개발  >  회문을 형성하기 위한 최소 삽입 수를 찾는 C 프로그램

회문을 형성하기 위한 최소 삽입 수를 찾는 C 프로그램

WBOY
WBOY앞으로
2023-09-05 17:13:051338검색

회문을 형성하기 위한 최소 삽입 수를 찾는 C 프로그램

회문은 반전과 동일한 문자열입니다. 문자열이 주어지면 문자열을 회문으로 만드는 데 필요한 삽입된 임의 문자의 최소 개수를 찾아야 합니다. 세 가지 접근 방식을 살펴보겠습니다. 먼저 재귀 접근 방식, 그 다음 이 솔루션을 메모하고 마지막으로 동적 프로그래밍 접근 방식을 구현합니다.

재귀적 방법

으아악

출력

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(2^N)입니다. 삽입할 때마다 선택을 하기 때문입니다. 여기서 N은 주어진 문자열의 크기입니다.

위 코드의 공간 복잡도는 O(N), 즉 재귀 호출에 사용되는 경우입니다.

메모리 방식

으아악

출력

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 이미 계산된 결과를 저장하기 때문에 O(N^2)입니다.

위 코드의 공간 복잡도는 여기서 추가 공간을 사용하고 있기 때문에 O(N^2)입니다.

동적 프로그래밍 방법

으아악

출력

으아악

시간과 공간의 복잡성

여기서는 중첩된 for 루프를 사용하기 때문에 위 코드의 시간 복잡도는 O(N^2)입니다.

위 코드의 공간 복잡도는 여기서 추가 공간을 사용하고 있기 때문에 O(N^2)입니다.

결론

이 튜토리얼에서는 주어진 문자열을 회문으로 만드는 데 필요한 최소 삽입 수를 찾는 세 가지 방법을 구현했습니다. 재귀적 방법을 구현한 후 이를 메모해 두었습니다. 마지막으로 테이블 형식 방법 또는 동적 프로그래밍 방법을 구현했습니다.

위 내용은 회문을 형성하기 위한 최소 삽입 수를 찾는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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