총 N 단어를 포함하는 문자열 str이 제공됩니다. 주어진 문자열에서 모든 회문 단어를 찾고 모든 회문 단어의 순서를 뒤집어 새 문자열을 만들어야 합니다.
문자열에는 nayan, navjivan 및 eye의 세 가지 회문이 포함되어 있습니다. 우리는 세 단어의 순서를 모두 바꾸었고 다른 모든 단어는 동일하게 유지했습니다.
문자열에 회문 단어가 포함되어 있지 않은 것과 동일한 출력을 제공합니다.
단일 회문 단어만 포함하는 문자열과 동일한 출력을 제공합니다.
이 방법에서는 먼저 문자열을 단어로 분할합니다. 그런 다음 모든 회문 단어를 필터링합니다. 다음으로 모든 회문의 순서를 반대로 바꿉니다.
마지막으로 문자열을 반복하고 현재 단어가 회문 단어이면 역순으로 다른 회문 단어로 바꿉니다.
1단계 - 결과 문자열을 반환하는 인수로 문자열을 전달하여 reversePlaindromic() 함수를 실행합니다.
2단계 - 단어가 회문인지 확인하는 isPalindrome() 함수를 만듭니다.
2.1단계 - "시작"을 0으로 초기화하고 "끝"을 문자열 길이 - 1로 초기화합니다.
2.2단계 - while 루프를 사용하여 문자열을 반복하고, 첫 번째 문자와 마지막 문자를 비교하고, 두 번째 문자와 끝에서 두 번째 문자를 비교하는 등의 작업을 수행합니다. 일치하지 않는 문자가 있으면 회문 문자열이 아니기 때문에 false가 반환됩니다.
2.3단계 - 문자열이 회문이면 true를 반환합니다.
3단계 - 문자열의 단어를 저장할 벡터를 만듭니다. 또한 단어를 저장하려면 "temp" 변수를 정의하세요.
4단계 - for 루프를 사용하여 문자열을 반복하고 공백(' ')과 같지 않으면 임시 값에 문자를 추가합니다. 그렇지 않으면 temp 값을 allWords 벡터에 푸시합니다.
5단계 - allWords 벡터를 반복하고 isPalindrome() 함수를 사용하여 현재 단어가 회문인지 확인합니다. 그렇다면 해당 단어를 "palindromWords" 벡터에 푸시하세요.
6단계 - "palindromWords" 목록을 반대로 바꿉니다.
7단계 - 이제 "allWords" 벡터를 다시 반복하고 현재 단어가 회문인지 확인합니다. 그렇다면 "palindromWords" 목록에서 존경받는 단어로 바꾸세요.
8단계 - "palindromWords" 목록을 반복하고 결과 변수에 모든 단어를 추가하여 문자열을 만듭니다. 결과 문자열을 반환합니다.
시간 복잡도 - 길이가 N인 문자열을 반복하므로 O(N)입니다.
공간 복잡도 - O(K) 단어를 저장하기 위해 목록을 사용하기 때문입니다. 여기서 k는 문자열의 총 단어 수입니다.
우리는 문장에서 모든 회문 단어를 가져와 역순으로 추가하는 방법을 배웠습니다. 위 코드에서 프로그래머는 isPalindrome() 함수의 구현을 변경하여 새로운 것을 배울 수 있습니다.
위 내용은 모든 회문 단어가 나타나는 순서를 반대로 바꿔서 문장을 수정하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!