입력에는 문자열 str과 문자 c가 제공됩니다. 문자열을 비회문으로 변환하려면 주어진 문자 c를 문자열의 인덱스에 삽입해야 합니다. 문자열을 회문이 아닌 문자열로 변환할 수 없으면 "-1"을 인쇄합니다.
주어진 문자열의 인덱스에 'n'을 삽입할 수 있으므로 여러 출력 문자열이 있을 수 있습니다. 따라서 출력 문자열은 "nnayan", "nanyan", "naynan", "nayann" 등이 될 수 있습니다.
주어진 문자열의 어디에 "s"를 삽입하더라도 항상 회문입니다.
str은 이미 회문이 아니므로 첫 번째 인덱스에 문자 c를 삽입하여 동일한 문자열을 인쇄합니다.
위 문제를 해결하기 위한 논리는 주어진 문자열의 모든 문자가 주어진 문자 c와 동일하면 회문으로 만들 수 없다는 것입니다. 그렇지 않으면 첫 번째 위치에 문자를 추가하고 결과 문자열이 회문인지 확인하십시오. 그렇다면 끝에 주어진 문자를 삽입하십시오.
이 방법에서는 while 루프를 사용하여 주어진 문자열이 회문인지 확인하고 for 루프를 사용하여 주어진 문자열의 모든 문자가 동일한지 확인합니다.
1단계 - "cnt" 변수를 초기화하여 주어진 문자 c와 동일한 문자 수를 저장합니다.
2단계 - for 루프를 사용하여 문자열을 반복합니다. 문자열의 인덱스 i에 있는 문자가 문자 c와 같으면 "cnt" 값에 1을 더합니다.
3단계 - 'cnt' 값이 문자열 길이와 같으면 '-1'을 인쇄하고 return 문을 실행합니다.
4단계 − c + str을 사용하여 'temp' 변수를 초기화합니다. 그런 다음 isPalindrome() 함수를 사용하여 주어진 문자열이 회문인지 확인합니다.
5단계 - isPalindrome() 함수를 정의합니다.
5.1단계 - 변수 'left'를 정의하고 0으로 초기화합니다. 또한 변수 'right'를 정의하고 문자열 길이에서 1을 뺀 값으로 초기화합니다.
5.2단계 - while 루프를 사용하여 문자열의 시작과 끝 문자를 일치시킵니다. 또한 "왼쪽" 변수의 값을 늘리고 "오른쪽" 변수의 값을 줄입니다.
5.3단계 - 불일치가 발견되면 false를 반환하고, 그렇지 않으면 모든 루프 반복이 완료되면 true를 반환합니다.
6단계 - "temp" 변수의 값이 회문이 아닌 경우 인쇄하고, 그렇지 않으면 str + c를 인쇄합니다.
시간 복잡도 - O(N) for 루프를 사용하여 주어진 문자와 동일한 총 문자 수를 계산하기 때문입니다.
Space Complexity - 추가 공간을 사용하지 않으므로 O(1)입니다.
이 방법에서는 첫 번째 방법과 동일한 논리를 사용하지만 for 루프를 사용하여 문자열이 회문인지 확인합니다. 또한, count() 메소드를 사용하여 문자열에서 주어진 문자의 총 개수를 계산했습니다.
1단계 - count() 메소드를 사용하여 문자열을 첫 번째 매개변수로 전달하고 문자 c를 두 번째 매개변수로 전달하여 문자열에서 주어진 문자와 동일한 문자 수를 계산합니다.
2단계 - count() 메서드에서 반환된 값이 문자열 길이와 같으면 "-1"을 인쇄합니다.
3단계 - isPalindrome() 함수에서 'i'를 0으로, 'j'를 문자열 길이 - 1로 초기화합니다. 그런 다음 사용자는 루프를 사용하여 시작 문자와 끝 문자를 반복하고 비교합니다. 불일치가 발생하면 false를 반환합니다.
4단계 − 주어진 문자를 임의의 위치에 삽입하고 문자열이 회문이 아닌지 확인합니다. 결과 문자열이 회문이 아니면 답을 얻었습니다. 그렇지 않으면 문자열에서 주어진 문자의 위치를 변경하고 다시 확인하십시오.
시간 복잡도 - O(N)
공간 복잡성 - O(1)
우리는 주어진 문자열을 회문이 아닌 문자열로 변환하는 두 가지 방법, 즉 주어진 문자를 임의의 위치에 삽입하는 방법을 배웠습니다. 두 방법 모두 동일한 논리를 사용하지만 첫 번째 방법에서는 주어진 문자와 동일한 동일한 문자 수를 계산하는 수동 함수를 작성했고 두 번째 방법에서는 count() 메서드를 사용했습니다.
첫 번째 방법은 학습 목적에 더 적합하고, 두 번째 방법은 실시간 개발에 더 적합합니다.
위 내용은 주어진 문자를 삽입하여 문자열을 회문이 아닌 것으로 만듭니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!