이 문제에서는 배열의 마지막 회문 문자열을 찾아야 합니다. 어떤 문자열을 읽어도 처음부터 읽든 끝에서 읽든 동일하면 그 문자열을 회문이라고 합니다. 특정 문자열이 회문인지 확인하기 위해 시작 문자와 끝 문자를 비교할 수 있습니다. 회문 문자열을 찾는 또 다른 방법은 문자열을 뒤집어서 원래 문자열과 비교하는 것입니다.
문제 설명 - 서로 다른 문자열을 포함하는 길이 N의 배열이 제공됩니다. 주어진 배열에서 마지막 회문 문자열을 찾아야 합니다.
Input – arr[] = {"werwr", "rwe", "nayan", "tut", "rte"};
출력 –'tut'
설명 – 주어진 배열의 마지막 회문 문자열은 'tut'입니다.
Input – arr[] = {"werwr", "rwe", "nayan", "acd", "sdr"};
Output-"nayan"
설명 – 'nayan'은 주어진 배열의 마지막 회문 문자열입니다.
Input – arr[] = {"werwr", "rwe", "jh", "er", "rte"};
출력-""
Explanation – 배열에 회문 문자열이 포함되어 있지 않으므로 빈 문자열을 인쇄합니다.
이 방법에서는 배열을 처음부터 반복하고 마지막 회문 문자열을 변수에 저장합니다. 또한 문자열의 시작 문자와 끝 문자를 비교하여 문자열이 회문인지 확인합니다.
마지막 회문 문자열을 저장하려면 'lastPal' 변수를 정의하세요.
배열을 탐색합니다.
isPalindrome() 함수를 사용하여 배열의 p번째 인덱스에 있는 문자열이 회문인지 확인하세요.
isPalindrome() 함수에서 루프를 사용하여 문자열을 탐색합니다.
str[i] 및 str[len - p - 1] 문자를 비교하고 일치하지 않는 문자가 있으면 false를 반환합니다.
루프의 모든 반복이 완료된 후 true를 반환합니다.
현재 문자열이 회문이면 'lastPal' 변수의 값을 현재 문자열로 업데이트하세요.
"lastPal"을 반환합니다.
시간 복잡도 - O(N*K) 왜냐하면 배열을 반복하고 각 문자열이 회문인지 확인하기 때문입니다.
공간 복잡도 - O(1) 왜냐하면 우리는 일정한 공간을 사용하고 있기 때문입니다.
이 방법에서는 마지막 배열부터 시작하여 배열을 반복하고 마지막 회문 문자열을 찾으면 이를 반환합니다. 추가적으로 reverse() 메소드를 사용하여 문자열이 회문인지 확인합니다.
마지막 배열부터 시작하여 배열을 탐색합니다.
isPalindrome() 함수를 사용하여 문자열이 회문인지 확인하세요.
isPalindrome() 함수에서 'str' 문자열을 'temp' 변수에 저장합니다.
임시 문자열을 반전하려면 reverse() 메서드를 사용하세요.
str과 temp가 같으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
i번째 인덱스의 문자열이 회문이면 해당 문자열을 반환합니다.
시간 복잡도 - 배열을 반복하고 문자열을 반전시키므로 O(N*K)입니다.
공간 복잡성 - 동적 공간을 사용하지 않기 때문에 O(1)입니다.
여기서 우리는 주어진 배열에서 마지막 회문 문자열을 찾는 두 가지 방법을 배웠습니다. 두 방법의 시간 및 공간 복잡도는 거의 비슷하지만 두 번째 코드가 첫 번째 코드보다 읽기 쉽고 더 좋습니다.
또한 프로그래머는 주어진 배열에서 두 번째 문자열을 찾고 더 많이 연습할 수 있습니다.
위 내용은 주어진 배열에서 마지막 회문 문자열을 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!