>  기사  >  백엔드 개발  >  문자열의 모든 문자를 늘리거나 줄여서 동일하게 만들 수 있는지 확인합니다.

문자열의 모든 문자를 늘리거나 줄여서 동일하게 만들 수 있는지 확인합니다.

WBOY
WBOY앞으로
2023-09-11 11:25:02802검색

문자열의 모든 문자를 늘리거나 줄여서 동일하게 만들 수 있는지 확인합니다.

이 문제에서는 증가 및 감소 연산을 통해 문자열의 모든 문자를 동일하게 만들 수 있는지 확인해야 합니다. ASCII 값을 기반으로 각 문자의 가중치를 얻고 총 가중치를 사용하여 모든 문자를 동일하게 만들 수 있는지 확인할 수 있습니다.

문제 설명 – 알파벳 소문자를 포함하는 길이 N의 문자열 str이 제공됩니다. 두 문자 중 하나를 선택하고 한 문자를 늘린 다음 다른 문자를 1씩 줄여 문자열의 모든 문자를 동일하게 만들 수 있는지 확인해야 합니다. 가능하면 "yes"를 인쇄하고, 그렇지 않으면 "no"를 인쇄합니다.

예제 예

Input– str = 'aedb

output-str = 'aedb

설명 - 'a'는 2씩 증가하고 'e'는 2씩 감소할 수 있습니다. 동시에 'b'는 1씩 증가할 수 있고 'd'는 1씩 증가할 수 있습니다. 따라서 결과 문자열은 'cccc'가 될 수 있습니다.

Input– str = 'abd'

출력-"아니요"

설명 – 증가 및 감소 연산으로 문자열의 모든 문자를 동일하게 만들 수는 없습니다

Enter -'g'

Output - '예'

설명 – 문자열에는 문자가 하나만 포함되어 있으므로 모든 문자열 문자는 이미 동일합니다

방법 1

이 방법에서는 문자열의 총 문자 가중치를 계산합니다. 문자의 가중치는 'a' = 1, 'b' = 2, 'c' = 3, …, 'z' = 26으로 정의됩니다. 따라서 총 무게를 문자열 길이로 나누면 한 문자를 늘리고 다른 문자를 줄임으로써 문자열의 모든 문자를 동일하게 만든다고 말할 수 있습니다.

알고리즘

  • "len" 변수를 정의하고 size() 메서드를 사용하여 문자열 크기를 저장합니다.

  • 주어진 문자열의 모든 문자의 총 무게를 저장하려면 "totalWeight" 변수를 정의하세요

  • 각 문자의 ASCII 코드를 사용하여 특정 문자의 가중치를 구하고 이를 "totalWeight" 변수에 추가합니다.

  • "totalWeight" 값이 "len"으로 나누어지면 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

으아악

출력

으아악

시간 복잡도 - 문자열을 반복하므로 O(N)입니다.

공간 복잡도 - O(1) 왜냐하면 우리는 일정한 공간을 사용하기 때문입니다.

결론

문자의 ASCII 값을 늘리거나 줄여서 문자열의 모든 문자가 같은지 확인하는 방법을 배웠습니다. 우리는 "총 중량"이라는 관점에서 이 문제를 해결합니다. 사용자는 결과 문자열을 찾으려고 시도할 수도 있습니다. 결과 문자열을 찾으려면 (totalWeight/len)에 해당하는 ASCII 값을 찾고 주어진 문자열에 "len" 문자를 추가합니다.

위 내용은 문자열의 모든 문자를 늘리거나 줄여서 동일하게 만들 수 있는지 확인합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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